Принципы объектно-ориентированного программирования

         

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



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

Другое применение оператора 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 (;;). Работают они одинаково, так что их применение — дело вкуса.



Содержание раздела