求解答 以下语句是否可以通过编译:if(1<=n<=10);

以下语句是否可以通过编译: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),除非有特殊情况。