条件表达式 x=<表达式1>?<表达式2>:<表达式3>
其意义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若为0(假),则求解表达式3,将表达式3的值赋给x。
今天写程序用到条件表达式,自己是这样写的
int x = 5;
int y = 7;
x = x + (y==7)?1:0;
自己的想写的语句是:y==7的话,x自身加1;y!=7时,x自身加0.
那么到底x = x + (y==7)?1:0;是否正确呢?
答案是不正确。
那么分析x = x + (y==7)?1:0;
x=<表达式1>?<表达式2>:<表达式3>
x + (y==7) 相当于表达式1
1 相当于表达式2
0相当于表达式3
所以 x恒等于1.
那么争取的写法如下:x = x +( (y==7)?1:0);加一对括号,此括号作用很大啊!
虽然知识点小,但是有必要记下,防止再次出错。