Преобразование цикла while в цикл for

#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 в первую очередь.