作业帮 > 综合 > 作业

表达式(w)?(-x):(++y),则其中与 w 等价的表达式是

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/03 11:43:41
表达式(w)?(-x):(++y),则其中与 w 等价的表达式是
A w==1
B w==0
C =1
D =0
答案为什么是D呢
表达式(w)?(-x):(++y),则其中与 w 等价的表达式是
这是一个三目运算符,(W)是条件语句,如果(W)为真执行(-x),如果为嫁则执行(++y),而,(W)的意思是如果W=0则为false,如果W!=0则为true,所以等价于D,其实就等价于
if(W)
(-x);
else
(++y);
再问: 请问,为什么这里等价的条件为真呢,只要是条件语句等价的结果一定为真么
再答: 这个不一定为真的啊,要看W的值,W的值如果不等于0才为真的
再问: 这个我还是没弄明白,(w)?(-x):(++y),w,x,y都没有值 A w==1 为真 B w==0 为假 C w!=1 不一定为真,不一定为假 D w!=0 为真 等价于真或假不是都可以么,如果为真,怎么不能选A呢,
再答: 当然如果把他们放在括号里,这个等式的效果都是一样的,但是呢 这么说吧 if(0)这个执行的就是false里的操作,if(1)这个执行的就是true的操作,也就是说0相当于false,1相当于true,当然我说的1只是泛指所有的不等于0 的数,这是概念性的问题,你如果问为什么0在条件里面为什么充当false的话,那我就没法回答了,我学的还没那么深的,举个例子吧,如果你想让一个条件语句永远是false,你可以写if(false),也可以写if(0),if(W)呢,W是一个变量,当他等于0 的时候他就是false,当他不等于0 的时候他就是true,所以这里的等价才是D选项的
再问: 可以留下你的Q吗,你没明白我的意思
再答: 好的