【发布时间】:2022-11-28 21:57:19
【问题描述】:
免责声明:我是新手。 我正在通过一个简单的测验在 C 中尝试条件链。
我输入了这个:
int age = get_int("Age in whole numbers: ");
int r;
if(age<12)
{
printf("Go back kid\n");
r = 0;
}
else if(12<= age <16)
{
printf("Teenagers not allowed\n");
r = 0;
}
(我在具有上述 get_int 函数的 visualstudio 中使用 cs50 代码空间)
年龄 <12 有效,但此行显示问题
else if(12<= age <16)
标题中提到的错误:Error
在这种情况下,“布尔表达式”是什么意思?我只想检查年龄是否大于或等于 12 且小于 16。根据我目前的理解,年龄变量声明为 int 并将存储一个 int 而不是布尔值。 我还能如何比较变量输入?
【问题讨论】:
-
您不能在 C 中使用复合比较。使用
12 <= age && age > 16 -
尝试从左到右检查它。 '12 <= age' 产生一个布尔值。 “布尔值”小于 16 吗?为什么是。是的,是的,因为它始终为 0 或 1。因此条件始终为“真”。
标签: c