последовательно принимает значения символов из
в начале i=in=high=low=0, input="PI=3.14159, approximately";
while (c=NEXT(i) != EOS ) |
Условие продолжения цикла заключается в том, что NEXT(i)!=EOS, где NEXT(i) последовательно принимает значения символов из input. Переменная c принимает значение логического выражения NEXT(i)!=EOS, которое по определению равно ИСТИНА в цикле и ЛОЖЬ по выходе из цикла |
if (1 |
Так как в цикле c всегда имеет значение 1, то low всегда будет увеличиваться (1 |
while (c=(input[I] != EOS ) |
Цикл продолжается до тех пор, пока не будут прочитаны все символы из input. В качестве символа конца строки в языке С используется нулевой символ "алфавита" ASCII, т.е. 00. |
в начале i=in=high=low=0, done=FALSE, input="PI=3.14159, approximately";
while ((c=NEXT(i)) != EOS &&!done) |
Переменная c последовательно принимает значения символов из input. |
if ('P' |
При первом выполнении цикла c='P', следовательно, в условном операторе условие - ЛОЖЬ. |
else if ('P'>9) |
ИСТИНА, и high увеличивается на 1. |
while('I'!=EOS&&!done) |
Возвращаемся к условию продолжения цикла. Условный оператор, сравнивающий low, high и in с ENUF, находится вне тела цикла, хотя и кажется, что он в него входит. Так как done в теле не изменяется, то цикл заканчивается, когда c=EOS. В цикле счетчики low, high и in увеличиваются в зависимости от результата сравнения c с символами '0' и '9'. |
в начале i=in=high=low=0, done=FALSE, input="PI=3.14159, approximately";
while ((c=NEXT(i))!=EOS && !done) { |
Переменная c последовательно принимает значения символов из input. |
if ('P' |
ЛОЖЬ |
else if ('P'>9) |
ИСТИНА |
done=(++high==ENUF) |
Переменная high после увеличения не равна ENUF, так что переменной done присваивается значение ЛОЖЬ, high =1 |
while('I'!=EOS&&!done) |
ИСТИНА |
if ('I' |
ЛОЖЬ |
else if ('P'>9) |
ИСТИНА |
done=(++high==ENUF) |
high=2, done=ЛОЖЬ |
while('I'!=EOS&&!done) |
ИСТИНА |
if ('=' |
ЛОЖЬ |
else if ('='>9) |
ИСТИНА |
done=(++high==ENUF) |
high=3, done=ИСТИНА |
while('I'!=EOS&&!done) |
done=ИСТИНА, так что !done=ЛОЖЬ, и цикл завершается. |
Содержание раздела