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.
ftinclude <iostream.h>
void main() {
bool correctEntry = false;
cout « "Введите пароль(выход по <Ctrl+C>): ";
char s[100]; // С запасом.
while (!correctEntry) { cin » s;