我需要计算奇数/偶数和,这是我到目前为止所得到的:
PROGRAM EvenOddSum;
USES
WinCrt;
VAR
odd, even, x: INTEGER;
BEGIN
WriteLn('Calculation of sum');
WriteLn;
odd := 0;
even := 0;
Write('Enter value(s)');
WHILE x > 0 DO BEGIN
IF x mod 2:= 0 THEN BEGIN
even := even + x;
ELSE
odd := odd + x;
ReadLn(x);
END;
WriteLn;
WriteLn('Even sum is = ', even);
WriteLn('Odd sum is =', odd);
END.
我使用freepascal.org编译器,我收到此错误:
SYNTAX error THEN expected but := found
我只是看不出这段代码的问题。
答案 0 :(得分:7)
在Pascal中,:=
是赋值运算符。将其替换为=
行上的IF x mod 2:= 0 THEN BEGIN
。
另外,删除BEGIN
。结果应为:
IF x mod 2 = 0 THEN
答案 1 :(得分:1)
就在这里:
IF x mod 2:= 0 THEN BEGIN
:=
用于分配,使用'='或'=='进行比较。
(在我的脑海中,我不知道Pascal是否使用'=','=='或两者进行比较。其中一个应该可以做到这一点。)
答案 2 :(得分:1)
如果没有错, :=
用于声明&分配价值。对于条件,您应该使用 =
。
将 x mod 2:= 0
更改为 x mod 2 = 0
答案 3 :(得分:0)
你可以说:
x mod 2 > 0 then writeln(x);
这将打印所有奇数。