ftimes 发表于 2016-1-17 23:15:34

请教一下<=变双目运算符的问题

今天在作题的时候发现程序运行结果在特定数值下出错,发现是首行判断语句出错。
我写的是if(1<=n<=100),
改为if(1<=n&&n<=100)后成功运行。
百度之后有人说if(1<=n<=100)中<=变成了双目运算符,
求解为什么会出现这种情况,
如果我只有一个判断比如if(1<=n)会不会变成双目运算符。
教材上对这节没怎么讲,所以特来向各位大神求教。

阴影中的曙光 发表于 2016-1-18 07:07:13

需呀两个变量的是双目运算符,所以<=是双目运算符一点问题也没有即使是你if(1<=n&&n<=100)这样写,<=也是双目运算符没区别,至于你写的那个东西为啥不对,<=的结合性是从左到右,所以会先判断1<=n;这个条件,无论你输入什么,结果无非就两种真(1)或者假(0)再判断就是1或者0是不是小于等于100.很显然这是恒为真的,所以你的if根本没有意义,等同于没有= =

ftimes 发表于 2016-1-18 14:05:58

阴影中的曙光 发表于 2016-1-18 07:07
需呀两个变量的是双目运算符,所以

灰常感谢斑竹解答

ligen超越 发表于 2016-1-18 15:55:10

哥们,看运算符的优先级别啊!
1<=n<=100;
只有一种运算符,所以从左到右,可以这样理解(1<=n)<=100
1<=n&&n<=100;
这个两种运算符,<=优先级别大与&&,所以可以这样理解:(1<=n)&&(n<=100)
注:括号的优先级别很高的哦!
么么哒{:10_256:}

ftimes 发表于 2016-1-18 17:36:23

ligen超越 发表于 2016-1-18 15:55
哥们,看运算符的优先级别啊!
1

非常感谢,一定会注意这些细节

lovly714366 发表于 2016-1-25 16:35:08

ligen超越 发表于 2016-1-18 15:55
哥们,看运算符的优先级别啊!
1

传说中的天才?

lovly714366 发表于 2016-1-25 16:35:44

ligen超越 发表于 2016-1-18 15:55
哥们,看运算符的优先级别啊!
1

求教怎么学的快?
页: [1]
查看完整版本: 请教一下<=变双目运算符的问题