我试图找出将使用 Free Pascal case 语句的示例传递给简单 if 语句的正确方法。
用例是
begin usingCaseStatements;
var
user_age : Integer;
begin
Writeln('Please enter your age');
Readln(user_age);
case user_age of
1..12 : Writeln('You are too young');
else
Writeln('Invalid input');
end;
Writeln('Please any key to terminate the program');
Readln();
end.
-----使用if语句--------
begin usingCaseStatements;
var
user_age : Integer;
begin
Writeln('Please enter your age');
Readln(user_age);
if user_age in 1..12 then
Writeln('You are too young')
else
Writeln('Invalid input');
Writeln('Please any key to continue');
Readln();
end.
我试过在没有任何运气的情况下替换 if 语句 snipet 中的“in”
有一次我尝试做
if (user_age = 1..12) then
并且它只给了我一个错误,编译器指出该语句正在等待 ')' 但它找到了 .. 相反。我对 FPC 非常陌生,因此非常感谢帮助和提示。 最佳答案
IN 测试集合,而不是范围。正如 TLama 已经评论过的,您可以使用 [1..12] 定义一个包含范围的集合。
不过,大多数 PC Pascal 仅支持最多 256 个元素的集合大小,因此 josifoski 推荐的解决方案从长远来看会更实用。
关于range - 检查数字是否在自由帕斯卡的范围内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24993971/