gpt4 book ai didi

delphi - 帕斯卡集奇怪的行为

转载 作者:行者123 更新时间:2023-12-03 18:00:53 26 4
gpt4 key购买 nike

我不明白为什么这段代码无法正常工作:

program selection;
var
n : integer;
begin
readln(n);
if (n in [100..1000]) then writeln('Selected!');
readln;
end.


这对于1到233之间的值对我来说很好用,如果我输入233或更大的值,则不会执行writeln..。这很奇怪。我还尝试了其他值,并且结果或多或少都是相同的,只是区别在于它失败的值。

最佳答案

Delphi集最多只能增加255个;最大值为1000的集合不起作用。我对您的代码编译感到有些惊讶。

当截断为8位时,值1000为232,这说明了为什么大于该值的值将失败。

相反,您可以使用InRange函数。就像set构造函数一样,它使用封闭范围。

if InRange(n, 100, 1000) then ...


您还可以使用普通的旧的不等式运算符来测试该值是否在给定范围内:

if (100 <= n) and (n <= 1000) then ...


最后,您可以使用 case语句。案例陈述选择器不是集合,因此它们不受集合的规则约束。

case n of
100..1000: begin ... end;
end;


缺点是,当只有一个case分支时,它看起来有些笨拙。

关于delphi - 帕斯卡集奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com