Книга: Язык Си - руководство для начинающих

ОПЕРАТОР 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.

Оглавление книги


Генерация: 0.085. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз