哪些是条件运算符?一元二元三元运算符?
3个回答
2013-08-26
展开全部
看你的问题觉得你没有分清条件运算符和条件表达式 条件运算符“?:”是三元的运算符。由这个运算符构成的表达式为条件表达式。条件表达式的格式为: e?e1:e2 其中,e、e1、e2 代表表达式。
条件表达式的求值法则是:首先求解 e 的值,若 e 值为真(非 0),则取 e1 的值作为
条件表达式的值;若 e 值为假(0),则取 e2 的值作为条件表达式的值。
用赋值表达式描述如下:
y=(x>=0)?1:-1 式中赋值号右边的是条件表达式。
又例如,若 a、b 的初值分别为 2 和 5,则条件表达式
a>b?a++:++b;
的值为++b,即先自加,后引用,值为 6,而表达式 a++不被求解,故执行后 a 不变,仍为2,而 b 变为 6。
有a=1,b=2这时我们要求是取ab两数中的较小的值放入min变量中,也许你会这样写:
if (a<b)
min = a;
else
min = b; //这一段的意思是当a<b时min的值为a的值,否则为b的值。用条件运算符去构成条件表达式就变得简单明了了:
min = (a<b)?a : b
很明显它的结果和含意都和上面的一段程序是一样的,但是代码却比上一段程序少很多,编译的效率也相对要高,但有着和复合赋值表达式一样的缺点就是可读性相对效差。在实际应用时根据自己要习惯使用,就我自己来说我喜欢使用较为好读的方式和加上适当的注解,这样可以有助于程序的调试和编写,也便于日后的修改读写。
条件表达式的求值法则是:首先求解 e 的值,若 e 值为真(非 0),则取 e1 的值作为
条件表达式的值;若 e 值为假(0),则取 e2 的值作为条件表达式的值。
用赋值表达式描述如下:
y=(x>=0)?1:-1 式中赋值号右边的是条件表达式。
又例如,若 a、b 的初值分别为 2 和 5,则条件表达式
a>b?a++:++b;
的值为++b,即先自加,后引用,值为 6,而表达式 a++不被求解,故执行后 a 不变,仍为2,而 b 变为 6。
有a=1,b=2这时我们要求是取ab两数中的较小的值放入min变量中,也许你会这样写:
if (a<b)
min = a;
else
min = b; //这一段的意思是当a<b时min的值为a的值,否则为b的值。用条件运算符去构成条件表达式就变得简单明了了:
min = (a<b)?a : b
很明显它的结果和含意都和上面的一段程序是一样的,但是代码却比上一段程序少很多,编译的效率也相对要高,但有着和复合赋值表达式一样的缺点就是可读性相对效差。在实际应用时根据自己要习惯使用,就我自己来说我喜欢使用较为好读的方式和加上适当的注解,这样可以有助于程序的调试和编写,也便于日后的修改读写。
2013-08-26
展开全部
x>y?a:b 是三元运算符a+b=c 两元远运算副!(取反) 一元运算符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-26
展开全部
? 运算符 三元
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询