Книга: Язык Си - руководство для начинающих
ОПЕРАТОР if
ОПЕРАТОР if
Начнем с очень простого примера. Мы уже видели, как нужно написать программу, подсчитывающую число символов в файле. Предположим, вместо символов мы хотим подсчитать строки. Это можно сделать путем счета числа символов "новая строка" в файле. Ниже приводится соответствующая программа:
/* подсчет строк */
#include < stdio.h>
main( )
{
int ch;
int linecount = 0;
while((ch = getchar( )) != EOF)
if(ch =='n')
linecount ++;
printf(" Янасчитала%d строкn", linecount);
}
Сердцевиной" программы является оператор
if(ch == 'n') linecount ++;
Этот "оператор if" служит указанием компьютеру увеличить значение переменной linecount на 1, если только что прочитанный символ (содержимое переменной ch) представляет собой символ "новая строка". Знак == не является опечаткой; его смысл выражается словами "равняется". Не путайте эту операцию с операцией присваивания (=).
Что происходит в случае, когда значение переменной ch не является символом "новая строка"? Тогда в цикле while производится чтение следующего символа.
Оператор if, который мы только что применили в программе, считается одиночным оператором, начинающимся от ключевого слова if и завершающимся символом "точка с запятой". Вот почему мы не использовали фигурные скобки, чтобы отметить начало и конец тела цикла while.
Совсем несложно усовершенствовать программу так, чтобы она подсчитывала символы и строки одновременно; давайте попробуем это сделать.
/* 1cс - подсчет числа строк и символов */
#include
main( )
{
int ch;
int linecount = 0;
int charcount = 0;
while((ch = getchar( )) != EOF)
{
charcount ++ ;
if(ch == 'n' ) linecount++ ;
}
printf(" Я насчитала %d символов и %d строк.n", charcount, linecount);
}
Теперь в цикл while входят два оператора; поэтому мы использовали фигурные скобки, чтобы отметить начало и конец тела цикла.
Мы вызываем скомпилированную программу Icc и используем операцию переключения, чтобы подсчитать число символов и строк в файле с именем chow.
Ice <chow Я насчитала 8539 символов и 233 строки
Следующий шаг в "развитии" этой программы - придание ей способности подсчитывать число слов. Это лишь немного труднее того, что мы делали до сих пор, но сначала нам нужно изучить ряд дополнительных вопросов, связанных с использованием операторов if.
- Арифметические операторы
- 1.2.4. Операторы и приоритеты
- Условные операторы
- 1. Оператор Select – базовый оператор языка структурированных запросов
- Поразрядные операторы
- Оператор цикла foreach
- Логические операторы
- Оператор goto
- A7.11. Оператор побитового И
- Использование операторов if для выбора вариантов
- 2.1.3. Оператор варианта (переключатель)
- Оператор цикла for