在WHILE语句中粘贴逻辑运算符

时间:2015-02-04 08:17:57

标签: loops while-loop pascal logical-operators

enter image description here

你可以看到我上面的图片,我对逻辑运算符有问题,所以我需要一个循环程序来搜索数据,我的参数可以用game_code或game_title填充,但是在循环序列中存在一些问题。

所以如何解决这个问题,我试过这个但不能正常工作

begin
          write(#32'Enter Game Title or Code: '); readln(param);
          i:=1;
          while((data[i].game_title<>param) or (data[i].game_code<>param)) and (i<totaldata) do
               i:=i+1;
          if (data[i].game_title=param) or (data[i].game_code=param) then

2 个答案:

答案 0 :(得分:0)

你似乎错过了一个括号。试试这个让我知道:

while(((data[i].game_title=param) or (data[i].game_code=param)) and (i<totaldata)) do
    begin
        i:=i+1;
    end;

答案 1 :(得分:-1)

您应该使用and

while (i < totaldata) and (data[i].game_title <> param) and (data[i].game_code <> param) do
    i:=i+1;

or之前,(data[i].game_title <> param) or (data[i].game_code <> param)表达式true始终为game_title = game_data = param

请注意,必须首先进行i < totaldata检查,以避免从数组边界访问内存。