如果条件不按应有的方式工作 - 帕斯卡

If conditions not working according to the way it should - pascal

我做了一个程序,您可以在其中键入一个字符串并将该字符串附加到一个文件中。这将重复循环,直到用户输入 "end"。我已经声明了一个 if 循环。如果变量得到 "end" 则循环停止。这是正确发生的。问题是单词 "end" 也被添加到文件中

 x:=0;
  repeat
    writeln('Enter game. Enter "end" to stop');
    readln(game);
    if game <> 'end' then
       x := x + 1 ;
       writeln(filevar,'                ',game);
  until game = 'end'  ;
  close(filevar);     

程序不应该跳过 "If" 部分作为 game = 'end' 吗?

你的 if 范围是错误的。

if game <> 'end' then
   x := x + 1 ;
   writeln(filevar,'                ',game);

相当于:

if game <> 'end' then
begin
   x := x + 1 ;
end
writeln(filevar,'                ',game);

你想要

if game <> 'end' then
begin
   x := x + 1 ;
   writeln(filevar,'                ',game);
end