如果条件不按应有的方式工作 - 帕斯卡
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
我做了一个程序,您可以在其中键入一个字符串并将该字符串附加到一个文件中。这将重复循环,直到用户输入 "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