我做了一个选择性计算器,即 您可以在其中选择计算的符号和数字,为了避免输入符号时出现错误,我决定进行一项检查,如果sign <> 'знак'
,而不是我有 +、- 等的“符号”。 ,但即使输入正确,检查每次都会起作用。问题是什么?代码:
program test;
label restart;
var
a,b,signnum,rest:integer;
sign:string;
begin
restart: rest := 0;
while rest <> 1 do
begin
a := 0;
b:=0;
sign:='';
writeln('Введите знак(/,*,+,-):');
readln(sign);
if (sign <> '-') or (sign <> '+') or (sign <> '/') or (sign <> '*') then
begin
writeln('Вы используете несуществующий символ для вычисления!');
goto restart;
end
else
continue;
writeln('Введите первое число: ');
readln(a);
writeln('Введите второе число: ');
readln(b);
if sign = '+' then
begin
writeln(a+b);
end;
if sign = '-' then
begin
writeln(a-b);
end;
if sign = '/' then
begin
writeln(a/b);
end;
if sign = '*' then
begin
writeln(a*b);
end;
end;
end.
需要使用and条件,而不是or,显然其中一个条件总是有效