max=max>num 的意思是max>num就执行max=max;max<num就执行max=num
那么max=max>num?max:num 又是什么意思呢?
----------------解决方案--------------------------------------------------------
max=max>num?max:num
if (max > num)
return max;
else return num;
这样你应该明白了吧 呵呵
----------------解决方案--------------------------------------------------------
那 max=max>num?max:num 不就也可以写成 max>num?max:num 了?
----------------解决方案--------------------------------------------------------
三目运算需要返回一个值 那个值返回来 给谁 当然是要给一个变量了
你说对吗
----------------解决方案--------------------------------------------------------
还是不明白啊 书上的格式是 y=x>70?100:0 如果x>70,y就赋值为100;反之则为0;
现在是 max=max>num?max:num 跟我看的格式不一样啊。 再次麻烦了~
----------------解决方案--------------------------------------------------------
规则:
表达式1?表达式2:表达式3
x>y?printf("%d",x):pritnf("%d",y);
int x,y;
w=x>y?x:y;
printf("%d",w);
int x,y;
if(x>y)
printf("%d",x);
else
printf("%d",y);
先计算表达式1,若产生非零值,则执行表达式2,并将表达式2的值作为整个条件表达式的值,若产生
零值,则执行表达式3,并将表达式3的值作为整个条件表达式的值(若执行表达式2,不执行表达式3)
int x,y,w;
x=5;
y=4;
w=x>y?x++:y++;
printf("%d,%d,%d",w,x,y);
if(x>y)
x++;
else
y++;
----------------解决方案--------------------------------------------------------
规则:
表达式1?表达式2:表达式3
x>y?printf("%d",x):pritnf("%d",y);
int x,y;
w=x>y?x:y; (w,x,y,如果只有2个值的话,是不是也可以写成w=w>x?);
printf("%d",w);
int x,y;
if(x>y)
printf("%d",x);
else
printf("%d",y);
先计算表达式1,若产生非零值,则执行表达式2,并将表达式2的值作为整个条件表达式的值,若产生
零值,则执行表达式3,并将表达式3的值作为整个条件表达式的值(若执行表达式2,不执行表达式3)
int x,y,w;
x=5;
y=4;
w=x>y?x++:y++;
printf("%d,%d,%d",w,x,y);
if(x>y)
x++;
else
y++;
(w,x,y,如果只有2个值的话,是不是也可以写成w=w>x?);
----------------解决方案--------------------------------------------------------
两个值的话 就不叫 三目运算了 呵呵
白话 ?:
这个 就相当于 有两个数比较 如果为真 意思就是说 如果条件成立 就执行 ? 后面的语句
如果 为假 就是条件 不成立 就执行 : 后面的 语句
----------------解决方案--------------------------------------------------------
其实我想问的就是这个:
y=x>5;100;0 x>5的话y就赋值100 否则赋值为0
x=x>5;100;0 x>5的话x就赋值100 否则赋值为0
这2个是不是一样的表达式?
----------------解决方案--------------------------------------------------------
楼上的你上机试试就知道了.加深理解...
----------------解决方案--------------------------------------------------------