新学逻辑运算非与或时,想必大家做题时或多或少都有这样的疑问,如果一个数要判断,那么if后面的圆括号是写数学上的区间(用不等式的方式表示)还是中间要插一个逻辑运算符呢?
比如我们输入一个m,要判断m是否在0到19之间。
常见的有两种写法。
if(0<=m<=19)
这是用数学中的区间方式写的。
另一种则是用逻辑运算符且写的。
if(m>=0&&m<=19)
那么编译的时候有什么区别呢,我们写一段程序就知道了。
#include <stdio.h>
main()
{
int m=0;
scanf("%d",&m);
if(0<=m<=10)
printf("%d",m);
else
m++;
}
在这段程序中,11超出了范围,本该执行else后面的语句不输出,但还是依原样输出了11。
我们再来实验另一种写法。
#include <stdio.h>
main()
{
int m=0;
scanf("%d",&m);
if(0<=m&&m<=10)
printf("%d",m);
else
m++;
}
在这段程序中,11执行了else后的语句。
所以第一种方案还是可以编译的,并不是不行。