Delphi 为什么帕斯卡能';t写入布尔值

Delphi 为什么帕斯卡能';t写入布尔值,delphi,pascal,Delphi,Pascal,我有一个密码: 对于i:=0到高(a)do 开始 {我想写0和1表示true和false} writeln(i%2=0); 结束; 但带有“writeln”的行出现错误 Syntax error, ")" expected but "ordinal const" found 有人能帮我吗( 谢谢:D在Pascal/Delphi中,模运算符是mod: writeln(i mod 2 = 0); %根本不是Pascal/Delphi运算符 因此,这与不接受布尔值的Writeln过程无关 这将

我有一个密码:

对于i:=0到高(a)do
开始
{我想写0和1表示true和false}
writeln(i%2=0);
结束;
但带有“writeln”的行出现错误

Syntax error, ")" expected but "ordinal const" found
有人能帮我吗(


谢谢:D

在Pascal/Delphi中,模运算符是
mod

writeln(i mod 2 = 0);
%
根本不是Pascal/Delphi运算符

因此,这与不接受布尔值的
Writeln
过程无关


这将打印
FALSE
TRUE
。如果您想要
0
1
,您需要
Ord(i mod 2=0)
或更妙的是,
Ord(不奇怪(i))

哦,对不起我的错误:(.我已经更改了它,但我有另一个问题:行代码写入控制台的是“TRUE/FALSE”,而不是“0,1”.我如何转换它?请注意
Ord(b)如果
b
是一个真正的布尔值,则只能保证产生
0
1
。如果它是其他类型的布尔值,如
ByteBool
WordBool
,或者是通过简单地强制转换整数值获得的,则可能是完全不同的。如果这对您来说不够好,您可以使用c创建一个以任何形式接受布尔值并返回整数
0
1
的函数(但这是另一个主题)