38
НАЗАР АУДАРЫҢЫЗ
Шартты операторларды жазуда кең таралған қателіктердің бірі – өрнектердегi
теңдiкке тексеру (
==) орнына (
=) қарапайым меншіктеуді қолдану, мысалы
if
(a=1) b=0
; Мұнда синтаксистiк қате жоқ, өйткенi меншіктеу операциясы
нөлге тең/тең емес болып бағаланатын нəтиже қалыптастырады. Бұл мысалда
b
ай-
нымалысына меншіктеу
а
айнымалысының мəнiнен тəуелсiз түрде орындалады.
Сондықтан айнымалының тұрақтыға тең екендігін тексеру өрнектерінде тұрақ-
тыны салыстыру операциясының сол жағына жазған жөн:
if
(1==а) b=0;
.
Екiншi қателік –
өрнек мəнінің берілген диапазонға тиісті екендігін тексеру кезінде
жиі кездеседі. Мысалы,
0<х<1
шартын тексеру үшін, оны шартты операторда дəл осын-
дай түрде тікелей жазуға болмайды, себебі алдымен
0<х
жеке салыстырылады да, оның
нəтижесi (
int
типіне түрлендірілген
true
немесе
false
) 1мен салыстырылады. Мұны
дұрыс жазу жолы:
if (0<х && х<1)...
Айнымалылар типі олардың атқаратын қызметіне қарай таңдалады.
Жоғарыдағы жебе ату координаталарын бүтін шамалармен бейнелеуге бол-
майды, өйткені бұл нəтиже дəлдiгінің жоғалуына алып келеді, ал ұпайлар
санын нақты шама ретінде сипаттау спортта қолданылмайды. Осындай
қарапайым программаның өзін аралық (қосымша) айнымалы енгізу арқылы
жəне шартты екі қабаттасқан
if
операторының орнына тізбектелген опера-
торлар түрінде жазу арқылы одан əрі оңайлатуға болады (бiрiншi нұсқада
kol
айнымалысының мəнi бiр рет қана меншіктелсе, екiншi нұсқада шарттың
орындалуына байланысты ол бір реттен үш ретке дейін меншіктелуі мүмкін):
Достарыңызбен бөлісу: