||逻辑或运算,在“||”运算符的表达式中,执行顺序是从左到右。如果其中有一个子表达式为True,那么整个表达式的值就为True,而且在该子表达式后面的式子不必再计算。
&&逻辑与运算,在“&&”运算符的表达式中,执行顺序是从左到右。如果其中有一个为False,那么整个表达式的值就为False,而且在该子表达式后面的式子不必再计算。
另外运算符优先级&&高于||。
你的代码中if(a==1||a==2&&b==3||b==4)相当于if(a==1||(a==2&&b==3)||b==4),当输入1,23132后,a=1,b=23132,在if(a==1||a==2&&b==3||b==4)中第一个判别式a==1就为True,后面的不管结果是什么,整个表达式结果依然为True,所以照样输出了
逻辑运算符优先次序为:
!(非)->&&(与)->||(或)
即,
a==1||a==2&&b==3||b==4 相当于
a==1||(a==2&&b==3)||b==4
因为a==1为真,则 a==1||(a==2&&b==3)||b==4 为真。
所以输出为Good