Pascal 奇偶数和

Pascal 奇偶数和,pascal,Pascal,我需要计算奇偶和,这里是我到目前为止得到的: 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

我需要计算奇偶和,这里是我到目前为止得到的:

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

我看不出这个代码有什么问题。

在Pascal中,
:=
是赋值运算符。如果x mod 2:=0,则在读取
的行中将其替换为
=
,然后开始

另外,卸下
开始
。结果应为:

IF x mod 2 = 0 THEN
在这里:

IF x mod 2:= 0 THEN BEGIN
:=
用于赋值,使用“=”或“=”进行比较。
(我不知道Pascal是使用“=”、“=”,还是同时使用这两种语言进行比较。其中一种应该可以做到这一点)。

如果我没有错,
:=
用于声明和赋值。对于条件,您应该使用
=

x mod 2:=0
更改为
x mod 2=0

您可以说:

x mod 2>0,然后写入n(x)


这将打印所有的奇数。

我上次写Pascal是在1983年,但你确定之后需要BEGIN关键字吗?我记得BEGIN引入了一个指令块,就像C/C++/Java/C#中的{does.@EricJ。我想是这样的