if (a=b)x++; //合法,但是逻辑错误
if (a= if (a-b) x++;//合法,当a-b不等于0时为真
if (a<=b<=c) x++;//合法,但是逻辑有误
if(1) x++; //合法,死循环
第一个是赋值,是在判断b的值,不是判断a,b是否相等,理论上是可以的;第二个是数学表达式,c不是这样表达的;第三,四,五个理论上是可以的。第五个是永真。原来答案是D,那是因为出题的人,心里假设了某个前提,没有写出来,所以他的心里认为D是对的。
答案是D
第1、3、4、5句是可以算合法的,其中第一句就是我们经常所说的判等写成了赋值,虽然于程序逻辑而言有问题,但确实是合法语句。
因为有四条是合法的啊,if (a-b) x++; 这一句是错的,因为括号里面需要的是一个判断性的语句,而不是一个算式