Поиск

Выход из бесконечного цикла

Другое применение оператора break — создание бесконечного цикла, выход из которого осуществляется, только когда встречается оператор break. Следующий пример — еще один способ написания "угадайки" с применением оператора break для выхода из цикла, когда пользователь введет Q. Заметьте: я заменил оператор while на оператор while(true), так что он не закончится, пока не встретится break.

using System;
class InfiniteLoopApp
{
const int MIN = 1;
const int MAX = 10;
const string QUIT_CHAR = "Q";
public static void MainQ
{
Random rnd = new RandomQ; double correctNumber;
string inputString; int userGuess;
bool correctGuess = false; bool userQuit = false;
while(true)
{
correctNumber = rnd.NextDoubleO * MAX;
correctNumber = Math.Round(correctNumber);
Console.Write
("Угадайте число от {0} до {1}...({2} - выход)",
MIN, MAX. QUIT_CHAR); inputString = Console. ReadLineO;
if (0 == string.Conpare(inputString, QUIT_CHAR, true))
{
userQuit = true;
break; } else
{
userGuess = inputString.Tolnt32();
correctGuess = (userGuess == correctNumber);
if ((correctGuess = (userGuess == correctNumber)))
{
break; }
else
{
Console.WriteLine
("Правильное число {0}\п", correctNumber); } } }
if (correctGuess && luserQuit) {
Console. Writel_ine( "Поздравляем!"); }
else {
Console.WriteLine("Может, в следующий раз повезет!"); } } }

И последнее: вместо оператора while(true) сгодился бы пустой оператор for в виде for (;;). Работают они одинаково, так что их применение — дело вкуса.