// Done by TheTutor -- 10/23/01
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com
/*
Что же такое цикл for? Ничего больше, чем способ сказать компьютеру делать что-либо
определенное количество раз.
Например, вы хотите напечатать "Hello World" 10 раз. Вы могли бы сделать следующее:
int main()
{
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
return 0;
}
Но что если вы хотите напечатать это 100 раз? Было бы слишком долго копировать и вставлять.
Это как раз один из примеров, где пригодится цикл for.
Сперва мы подключим файл "stdio.h". Это заголовочный файл, который подключает несколько
"определений функций", которые написали для нас умные люди, чтобы мы использовали эти
функции в наших программах. Пока что просто помните, что вам нужно подключить этот
файл, чтобы иметь возможность печатать на экран. */
#include <stdio.h>
/* Это главная функция (ядро всех консольных программ). В этой программе мы возвращаем из
функции целое число (int). Есть правило - если программа обнаружит ошибку, вы должны
вернуть целое число 1, в другом случае вы должны вернуть 0, чтобы показать, что все
прошло хорошо.
*/
int main()
{
// Итак, то что мы хотим сделать, это напечатать на экран "Hello World" 10 раз, используя цикл for.
int count; // Это целочисленная переменная - она будет использоваться для счета от 1 до 10
// в нашем цикле for.
// Ниже идут строки программы, которые печатают "Hello World" 10 раз на экран.
for (count = 0; count < 10; count++)
{
printf("Hello World\n");
}
/* Теперь когда вы видели это, рассмотрим этот программный код шаг за шагом.
for(count = 0; count < 10; count++)
|
|___ Ключевое слово "for" показывает начало цикла for. Вы будете начинать
все ваши циклы for с этого ключевого слова
for(count = 0; count < 10; count++)
|
|__ Это "часть инициализации" цикла for. Здесь вы инициализируете все
переменные, которые вы хотите использовать в цикле. Для данной
программы "count = 0;" устанавливает переменной count нулевое значение.
У вас могут быть циклы for, которые ничего не инициализируют. Например:
for(; count < 10; count++) // Обратите внимание на то, что мы все равно
должны использовать точку с запятой
Итак, еще раз, эта "первая часть цикла" используется для инициализации переменных.
for(count = 0; count < 10; count++)
|
|__ Это "условная часть" цикла for. Цикл for будет выполняться
до тех пор, пока условие будет оставаться истинным. В нашем
примере, до тех пор, пока переменная count МЕНЬШЕ 10, весь
код в цикле (все между {}) будет выполняться.
for(count = 0; count < 10; count++)
|
|__ Это "часть приращения" цикла for. Помните, что
циклы for сделаны чтобы выполнять что-либо определенное
количество раз. В этой части мы обновляем счетчик того,
сколько раз мы выполнили действия. Здесь "count++"
(обратите внимание - нет точки с запятой) прибавляет
единицу к count каждый раз когда мы достигаем конца
цикла for (скобки } ).
А теперь давайте посмотрим, что произойдет после запуска программы:
Сначала создается переменная "count".
Затем мы начинаем цикл for. В самом его начале и только один раз переменная "count"
устанавливается в ноль. Затем проводится сравнение (count < 10) - если count меньше 10,
строки кода цикла for будут выполняться (код между {}). После того, как будет выполнена
последняя строка кода внутри цикла, выполняется строка "count++" (что прибавляет
единицу к count).
Затем мы возвращаемся к началу цикла и проверяем условие (count < 10).
Если count меньше 10 (а так оно и есть, потому что count сейчас равняется только 1),
выполняется код между {}, после чего выполняется "count++" (мы прибавляем единицу
к count, и теперь она равняется 2).
И цикл продолжает повторяться до тех пор пока count не будет равна 10 и таким образом
станет НЕ меньше 10.
*/
return 0; // Возвращаем 0, чтобы сказать "наша программа завершилась без ошибок".
}
/*
| TheTutor
| thetutor@gametutorials.com
| © 2000-2002 GameTutorials
*/
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com
|