Pascal for cycles in repeating cycles

you have all been so helpful so far, so you have another unpleasant problem for you!

I have a basic word guessing game written in Pascal for a console in Delphi 7 where the guesses (right or wrong) are stored in a fixed array with the name "guesses", now I need to check see if they have already guessed about this letter. I have the following code ...

Write ('Guess a letter:');
Readln (guess);
Guess: = UpCase (Guess);
repeat
  for i: = 1 to 20 do
  begin
    if guess = guesses [i] then
      begin
        guessed: = true;
      end
    else begin
      guessed: = false;
    end;
  end;
until (guessed = true) or (i = 20);

, for 20 "", . , 20 , "" .

!

+5
2

, , .

  • for, , break : = true.

  • , , , , ? , , . stackoverflow , - : do_something_here(); , 100 , .

  • , var, .

, :

  • for.
  • While, - , , .

, - :

(1) - , -, .

(2) , , , . for , .

(3) , , . , ? .

procedure Demo;
var
  guess:Char;
  guesses:Array of Char;
  i: Integer;
  guessed:Boolean;
begin
 repeat
  setup_guesses(guesses); // not shown
  Write ('Guess a letter: ');
  Readln (guess);
  Guess := UpCase(Guess);
  if (Ord(Guess)>='A') and (Ord(Guess)<='Z') then begin
   guessed := false;
   for i := Low(guesses) to High(Guesses) do // why hard code 1..20???
   begin
     if guess = guesses[i] then
       begin
         guessed := true;
         break;
       end;
   end;
  end;
 until (guessed = true);
 if guessed then
   WriteLn('An element in guesses matched your input')
 else
   WriteLn('No element in guesses array matches your input')
end;
+9

, for 20 , , "", . , for 20 , boolean "" .

:

: Loop var

var undefined

var

, ,

http://courses.cs.vt.edu/~cs3304/Spring00/notes/Chapter-7/tsld026.htm

+7

All Articles