238 __________Часть II. Программирование на C++

const char с = ' $';

char s[MAX_STR_LEN] ;

bool youWin = false;

cout « "\пВведите строку с секретным символом (Выход по <Ctrl+C>).\n";

while (cin.getline(s, MAX_STR_LEN-1)) {

// Считаем общее число символов в s, исключая завершающий нуль. char *sp = s;

int len =0;

while (*sp++) ++len;

for (int i = 0; i < len; i++) if (s[i] == c) ( youWin = true;

break; // Выход.из цикла for. }

if (youWin) break;

cout « "\пИзвини'те. Попробуйте еще раз.\п"; // Эта строка не

// выполнится, если цикл будет прерван. }

if (youWin)

cout « "\пПоздравляю. Вы очень догадливы!\п";

}

Да, это некрасиво. Использовать операторы перехода в большинстве случаев, исключая операторы return и break в операторе switch, не рекомендуется.

continue

Оператор continue прекращает текущую итерацию в ближайшем внешнем цикле while, do или for. Управление передается проверочному выражению циклов while и do или выражению управления циклом в цикле for. Пример представлен в листинге 10.9.

h02381.jpg

ftinclude <iostream.h>

void main() {

bool correctEntry = false;

cout « "Введите пароль(выход по <Ctrl+C>): ";

char s[100]; // С запасом.

while (!correctEntry) { cin » s;