Петля с разрывом или без него
Привет эксперты,
Существует дискуссия между некоторыми академическими и неакадемическими программистами, особенно во французском мире, о том, следует ли разрывать внутри цикла.
Приведенный ниже код иллюстрирует то, что я имею в виду.
Как вы думаете, что лучше всего использовать и почему:
1.
for(int i=0; i<10; i++) { WriteLine("saisir une valeur"); int valeur = Convert.ToInt32(ReadLine()); if(valeur == 50){ WriteLine("Bingo! FOUND!"); break; } }
2.
bool found = false; int tentatives = 0; while(!found && ++tentatives <= 10) { WriteLine("saisir une valeur"); int valeur = Convert.ToInt32(ReadLine()); if(valeur == 50){ WriteLine("Bingo! FOUND!"); found = true; } }
Что я уже пробовал:
Я попробовал первый вариант, учитель 10 лет назад попросил этого не делать. То же самое произошло с моим другом, который готовит свою степень в области электротехники.
Richard MacCutchan
Это во многом вопрос стиля и личного выбора. Однако вариант 2 дает понять, какое условие приведет к разрыву цикла.
W∴ Balboos, GHB
Разве это не абсолютно ясно и в примере 1? То есть valeur==50 ?
Richard MacCutchan
Именно в этом примере, но в более длинном и сложном цикле это может быть не так. Лично я обычно выбираю вариант 1.
W∴ Balboos, GHB
Моя голова работает в другую сторону для увеличения сложности - должно быть, это какая-то французская штука.
Richard MacCutchan
У меня нет никаких реальных предпочтений в любом случае, я просто склонен писать то, что кажется мне разумным в то время. А затем потратьте следующие несколько часов, пытаясь отладить его.