为什么“18<=age<28"的这种写法不对呢?
错误代码演示:
//错误代码演示
#include<stdio.h>
int main()
{
int age=10;
if(18<=age<28)/*当age等于10时为什么还会被打印出来呢?
因为我们“18<=age<28"这个写法本身就是不对的,这样写出来代码会默认从左向右开始运行,
首先运行的是"18<=age”,当age=10时,“18<=age”为假,输出为0,
所以此时原来的“18<=age<28”就变成了“0<28”,
所以计算机就会认为该表达式为真,从而在运行时依旧输出“青年”。
该表达式正确的写法应该是“18<=age&&age<28”*/
printf("青年\n");
return 0;
}
正确代码演示:
//正确代码演示
#include<stdio.h>
int main()
{
int age=10;
if(18<=age&&age<28)
printf("青年\n");
return 0;
}