以下语句是否可以通过编译:if(1<=n<=10);
翁恺老师的C语言课里的题目
正确答案是可以,但我选了不可以
不是说if()后面不能直接加分号;吗?
菜鸡求解惑
可以加分号,表示空执行,意思就是说符合条件时什么也不执行继续往下走
那你可不可以这么理解
先举个正常例子
if(1<=n<=10)
n=1;
等同于
if(1<=n<=10) n=1;
那如果if语句之后我们什么都不做,可不可以写成
if(1<=n<=10)
;
等同于 if(1<=n<=10);
意思是如果满足if条件,但是我什么也不做,代码继续向下跑
谁说不能加分号的?
分号表示一条语句的结束而已。
只有分号,说明是空语句,没有实际的意义。
if(1<=n<=10);
可以通过编译,但是结果不是你想要的。
加分号不会编译出错。一般if后面不加分号,因为需要进入分支条件处理模块,加了分号则后续代码就不属于if的分支代码了。
你这个if语句没啥意思,况且if里面的表达式应该也不是正确的表达式,应该是if(n>=1 && n<=10),除非有特殊情况。