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