// - "Talk to me like I'm a 3 year old!" Programming Lessons -
//
// $Author: Ben Humphrey digiben@gametutorials.com
//
// $Program: Counting
//
// $Description: Prints a given number range in a while loop
//
// $Date: 5/18/00
//
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com
#include <stdio.h>
// Начало нашей программы.
void main()
{
int min=0, max=0;
// Мы инициализируем 2 целочисленные переменные, чтобы хранить в них
// границы диапазона. Мы устанавливаем их равными нулю, иначе в них
// будут какие-нибудь сумасшедшие числа, например -858993460. Мы могли бы
// также написать:
// int min=0;
// int max=0;
// Это делает то же самое, просто такая запись более подробна.
// Теперь мы напечатаем приглашение пользователю ввести число - нижнюю границу
printf("Input your first number to count from: ");
// "Введите число, с которого следует начать счет"
// Затем мы ждем до тех пор, пока пользователь не нажмет <enter> и читаем
// то, что введено, затем сохраняем это в переменной "min".
// Мы используем "%d" потому что это значит, что мы читаем целое число.
scanf("%d", &min);
// Видите знак "&"? Это значит, что мы помещаем то, что введено
// по адресу переменной в память.
// Вот как это работает, это довольно сложно. Сначала переменная создается,
// и когда мы говорим "создается", это значит, мы сообщаем windows что нам
// нужно определенное количество памяти системы.
// Когда windows реагирует на это, она дает нам адрес ячейки памяти,
// в которой хранится информация этой переменной.
// Всегда желательно использовать как можно меньше памяти. Для небольших
// программ, вроде нашей, это не существенно. Но когда у вас будут ОГРОМНЫЕ
// проекты, это ОЧЕНЬ важно. Программы будут работать быстрее. Поверьте мне.
// Итак, как правило мы используем НАИМЕНЬШЕЕ число переменных, для
// того, чтобы сэкономить память.
// Хорошего программиста можно определить по его программам: они работают
// быстро и наиболее эффективно. Каждый старается достичь этого. Совершенству
// нет предела.
// А теперь мы выводим сообщение и просим ввести число - верхнюю границу.
printf("Input your last number to count to: ");
// "Введите число, до которого нужно считать:"
// Затем мы читаем это число.
scanf("%d", &max);
// Здесь начинается цикл while:
// Вы будете очень часто его использовать.
// Цикл "While" очень похож на цикл for.
// Вот что он делает.
// " while ( условие истинно ) делать все что в скобках { }"
// В нашем случае:
// "while ( min меньше или равно max ) { напечатать значение min ,
// а затем прибавить к min единицу }
// Например, возьмем 5 для min и 10 для max.
// "while ( 5 меньше или равно 10 ) и т.д....
// Это напечатает 5, затем 6, затем 7, затем 8, затем 9, затем 10
// (10 будет напечатано потому что 10 меньше или равно 10 )
// Затем, когда min станет 11, 11 не <= 10, поэтому цикл остановится
// и больше не будет исполнять то, что в скобках. Цикл завершен.
while (min <= max)
{ // Выполняется то, что в скобках до тех пор пока выражение не станет
// ложным (FALSE) ( когда min > max).
printf("%d\n", min);
// Мы вновь используем %d потому что мы печатаем число. Наше число это min.
// ("\n" переходит на следующую строку)
min++;
// min увеличивается на 1. (вспомните, это то же самое,
// что и "min = min + 1", только короче.
}
// То, что в скобках выполняется до тех пор, пока выражение не станет
// ложным (FALSE) ( когда min > max).
// Вы можете спросить, почему бы не использовать цикл "For" вместо
// цикла "While"?
// В цикле for мы указываем переменную, которая используется как счетчик
// затем условие работы цикла, затем наращиваемое значение...
// Здесь же можно не указывать все это
// Мы могли бы сделать нечто вроде того, что показано слева
// "while(max) " // Это означает " while ( max не равно 0)
// "{ " // { печатать значение max, отнимать 1 от max } "
// " printf("%d\n", max); " // В результате печатается значение "max",
// " max--; " // которое уменьшается до нуля.
// "} "
// Заметьте, что нам не всегда необходимо использовать полную
// структуру цикла "For". Тем не менее, мы могли бы сделать то же самое
// с помощью него. Обычно цикл while используется когда необходимо
// что-то повторять, пока условие истинно.
// Цикл for используется когда количество повторений цикла известно
// заранее.
} // Конец функции "main()" и программы.
// Мы только что завершили наш первый цикл while. Если ввести 10 и 15, работа программы выглядит так:
// Input your first number to count from: <введем 10 и нажмем ENTER>
// Input your last number to count to: <введем 15 и нажмем ENTER>
// 10
// 11
// 12
// 13
// 14
// 15
// Press any key to continue
// © 2001 GameTutorials
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com
|