Часть I. Базовые сведения о программировании на языке C#
в заголовочную часть оператора
for
. После этого вычисляется третье
выражение (изменяется параметр цикла) и проверяется значение второ-
го выражения. Если оно истинно, то выполняется тело, затем управле-
ние снова передается на вычисление третьего выражения и т. д. Если же
второе выражение становится ложным, то выполнение оператора
for
завершается и начинает выполняться оператор, следующий непосредст-
венно за ним, т. е. за его телом (а это — завершающая фигурная скобка
Main()
, означающая прекращение работы функции
Main()
).
В данном примере следует обратить внимание на аргумент функции
Console.WriteLine(...)
. Вместо обычной переменной там стоит целое
выражение, которое сначала будет вычислено, а потом его значение
выведется на устройство вывода.
Выражение
можно указывать в каче-
стве аргумента функции, исходя из правила языка:
"В любом контек-
сте, в котором допускается использование переменной некоторого ти-
па, можно использовать и выражение этого же типа"
.
Изменим программу листинга 3.3 так, как показано в листинге 3.4.
Листинг 3.4
/* Created by SharpDevelop.
* User: user
* Date: 12.11.2012
* Time: 12:41
*
* To change this template use Tools | Options | Coding |
* Edit Standard Headers.
*/
using System;
namespace app3
{
class Program
{
const int upper = 300;
const int lower = 0;
const int step = 20;
public static void Main()
{
Console.WriteLine("Таблица температур по Фаренгейту
и Цельсию:");
Console.WriteLine("По Фаренгейту По Цельсию");
Глава 3. Базовые типы данных, переменные
53
int fahr;
for(fahr=lower; fahr <= upper; fahr= fahr + step)
Console.WriteLine("{0:f} {1:f}", fahr,
(5.0/9.0)*(fahr-32.0));
Console.Write("Для продолжения нажмите любую клавишу > ");
// Press any key to continue...
Console.Read();
}
}
}
Что нового получилось? В операторе
for
были заменены конкретные
числа на значения переменных, а сами переменные получили начальные
константные значения перед определением функции
Main()
. Результат
расчета не изменился. Для чего все это? Мы повысили гибкость про-
граммы в смысле ее сопровождения. Представьте себе, что вы сопрово-
ждаете довольно большую программу, да еще и чужую. То есть вы в
ней, так сказать, плаваете. В нее разработчик понапихал (иначе не ска-
жешь) массу конкретных цифр. Приходит к вам тот, для кого вы сопро-
вождаете эту программу (т. е. программа работает на этого человека или
организацию), и говорит вам, что такие-то цифры, заложенные ранее в
программу, надо заменить другими. Что вы станете делать? Вы возьмете
текст программы и начнете в нем долго и упорно искать цифры, кото-
рые надо заменить. При этом будете вспоминать разработчика не очень
лестными словами. Вот чтобы этого не случалось, лучше все константы,
участвующие в расчетах, выносить в одну область программы (жела-
тельно, в начало), чтобы можно было в дальнейшем без особого труда
изменять их значения. Форма записи таких величин в виде
const int
upper = 300;
и место их записи — это требования классов, которые мы
будем рассматривать в дальнейшем. Так как наша программа оформле-
на как класс с именем
Program
, то константы в этом классе описаны как
константные данные по требуемому формату.
В заключение отметим, что наряду с оператором цикла
while
имеется
оператор цикла
do
while
. Он работает практически так же, как и
while
,
за одним лишь исключением:
while
может сразу заканчиваться, не вы-
полняя ни разу своего тела, если первоначально условие в его заголовке
ложно. Работа оператора начинается с проверки условия в его заголов-
ке: если оно ложно, оператор не выполняется. Но встречаются задачи,
в которых надо применить
while
, но чтобы и при ложном начальном
условии тело выполнилось хотя бы один раз. Вот это и делает оператор
do
while
.
54
Do'stlaringiz bilan baham: |