#delphi
#delphi
Вопрос:
Как я должен преобразовать этот цикл while в цикл for?
const
TheRightWord = 'hello';
MaximumTries = 3;
var
NTries : integer;
AWord : string;
begin
NTries := 1;
AWord := ' ';
while (AWord <> TheRightWord) and (NTries <= MaximumTries) do
Я думал, что это будет ответом:
for (AWord <> TheRightWord) and (NTries <= MaximumTries) do
Должен ли я просто поставить for
вместо while
? Или это for i := 1 to 3 do
?
Комментарии:
1. нет, я хочу создать программу, которая запрашивает пароль….
2. и если 3 попытки завершаются неудачей, это отключает вас, но я хочу использовать цикл for вместо while
3. Цикл «For» не принимает логические операторы. Это будет просто «для i : = 1-3 do» с остальной логикой внутри
4. Я не могу понять, зачем вам это нужно; за исключением того, что вы вынуждены это делать, нет необходимости преобразовывать цикл while в цикл for, потому что цикл while считается более эффективным, чем цикл for
Ответ №1:
for numtries := 1 to maxnumtries do begin
if AWord = TheRightWord then
break;
...
Как определить успех или неудачу при выходе из цикла (или, если на то пошло, как перебирать разные значения «AWord») — это упражнение для студента 🙂
Комментарии:
1. Строго говоря, это правильный ответ на вопрос, но лично мне не нравится использовать «break». По этой причине я бы использовал цикл while в первую очередь.