Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как противостоять манипуляциям мужчин? Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?

Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Оператор BREAK





 

Иногда бывает удобным иметь возможность управлять выхо-

дом из цикла иначе, чем проверкой условия в начале или в

конце. Оператор BRеак позволяет выйти из операторов FOR,

WHILE и DO до окончания цикла точно так же, как и из перек-

лючателя. Оператор BRеак приводит к немедленному выходу из

самого внутреннего охватывающего его цикла (или переключате-

ля).

Следующая программа удаляет хвостовые пробелы и табуля-

ции из конца каждой строки файла ввода. Она использует опе-

ратор BRеак для выхода из цикла, когда найден крайний правый

отличный от пробела и табуляции символ.

 

#DEFINE MAXLINE 1000

MAIN() /* REMOVE TRAILING BLANKS AND TABS */

{

INT N;

CHAR LINE[MAXLINE];

 

WHILE ((N = GETLINE(LINE,MAXLINE)) > 0) {

WHILE (--N >= 0)

IF (LINE[N] != ' ' && LINE[N] != '\T'

&& LINE[N] != '\N')

BREAK;

LINE[N+1] = '\0';

PRINTF("%S\N",LINE);

}

}

 

Функция GETLINE возвращает длину строки. Внутренний цикл

начинается с последнего символа LINE (напомним, что --N

уменьшает N до использования его значения) и движется в об-

ратном направлении в поиске первого символа , который отли-

чен от пробела, табуляции или новой строки. Цикл прерывает-

ся, когда либо найден такой символ, либо N становится отри-

цательным (т.е., когда просмотрена вся строка). Советуем вам

убедиться, что такое поведение правильно и в том случае,

когда строка состоит только из символов пустых промежутков.

В качестве альтернативы к BRеак можно ввести проверку в

сам цикл:

 

WHILE ((N = GETLINE(LINE,MAXLINE)) > 0) {

WHILE (--N >= 0

&& (LINE[N] == ' ' \!\! LINE[N] == '\T'

\!\! LINE[N] == '\N'))

;

...

}

 

Это уступает предыдущему варианту, так как проверка стано-

вится труднее для понимания. Проверок, которые требуют пе-

реплетения &&, \!\!, ! И круглых скобок, по возможности сле-

дует избегать.

 

 








Date: 2015-09-17; view: 58; Нарушение авторских прав

mydocx.ru - 2015-2018 year. (0.004 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию