Цикл whileработает следующим образом. Когда программа в процессе выполнения впервые достигает оператора while, осушествляется проверка истинности условия, заключенного в круглые скобки. В этом случае соответствующее выражение имеет вид:
shoe < 18.5
где символ <означает "меньше". Вначале переменная shoeбыла инициализирована значением 3.0, которое, как видно, меньше 18.5. Поэтому данное условие истинно, и осуществляется переход к следующему оператору, который переводит размер обуви в дюймы. После этого результаты выводятся на печать. Следующий оператор:
shoe = shoe + 1.0;
увеличивает значение переменной shoeна 1.0, делая его равным 4.0. В этом месте программы происходит возврат к началу фрагмента while, где вышеупомянутое условие проверяется вновь. По чему именно здесь? Это происходит потому, что следующей строкой программы является закрывающая фигурная скобка }- тело цикла whileзаключено в фигурные скобки. Операторы, располо женные между ними, являются той частью программы, которая может выполняться повторно. Теперь давайте вернемся к нашей программе: 4меньше 18.5? Безусловно Поэтому весь набор операторов, заключенный в фигурные скобки и следующий за ключевым словом while, выполнится опять. (Специалисты по вычислительной технике в этом случае говорят, что программа выполняет эти операторы "в цикле"). Это продолжается, пока значение переменной shoeне достигнет величины 19.0. Когда условие
shoe < 18.5
станет ложным, поскольку 19.0не меньше 18.5. При этом произойдет передача управления оператору, следующему сразу за телом цикла while. В нашем случае им является завершающий оператор printf().
Вы можете легко модифицировать эту программу, чтобы она осуществляла другие преобразования. Например, замените значение константы SCALEна 1.8, а константы OFFSET- на 32.0, и вы изучите программу, которая переводит температуру по Цельсию в температуру по Фаренгейту. Если заменить значение SCALEна 0.6214, a OFFSETна 0, то программа будет переводить мили в километры. Производя эти изменения, вы, повидимому, во избежание путаницы должны будете поменять также и печатаемые сообщения.
Цикл whileслужит удобным и гибким средством управления выполнения программы. Вернемся теперь к обсуждению набора основных операций, которые мы можем использовать в программах.
"Операции" в языке Си применяются для представления арифметических действий. Например, выполнение операции +приводит к сложению двух величин, стоящих слева и справа от этого знака. Если слово "операция" кажется вам странным, подумайте тогда, как назвать эти понятия. Нам слово "операция" представляется лучшим термином, чем, скажем, "арифметические транзакторы" мы рассмотрим операции =, +, -, *и /. (В языке Си нет операции возведения в степень. В одной из следующих глав будет представлена программа, реализующая данную функцию).
В языке Си знак равенства не означает "равно". Он означает операцию присваивания некоторого значения. С помощью оператора
bmw = 2002,
переменной с именем bmwприсваивается значение 2002, т.е. элемент слева от знака =- это имя переменной, а элемент справа - ее значение . Мы называем символ ="операцией присваивания". Еще раз хотим обратить ваше внимание на то, что смысл указанной строки не выражается словами " bmwравно 2002". Вместо этого нужно говорить так "присвоить переменной bmwзначение 2002". В этой операции действие выполняется справа налево.
Возможно, различие между именем переменной и ее значением покажется вам незначительным. В таком случае давайте рассмотрим следующий сравнительно часто используемый при программировании оператор
i =i + 1;
С математической точки зрения это бессмыслица. Если вы прибавляете единицу к конечному числу, результат не может быть равен исходному числу. Но как оператор присваивания данная строка имеет вполне определенный смысл, который можно выразить, например, такой длинной фразой "Взять значение переменной с именем i, к нему прибавить 1, а затем присвоить новое значение переменной с именем i".
Читать дальше