ch!=(ch>='A'&&ch<='z')?ch:(ch+32)。结果是A。求解释。
展开全部
!=的右边是:ch>='A'&&ch<='Z')?ch:(ch+32)
这个条件运算符的意思是: 如果ch是大写字母,则不变,否则在ASCII码上 +32
而 ch!=(ch>='A'&&ch<='z')?ch:(ch+32) 是一个关系表达式, 关系表达式的结果 只有true和false
你说结果是A,
是说 ch的值 是A 呢, 还是 说其他的?
如果ch的值时A, 那么 说明可能ch初始值 就是 A
否则,就是 ch+32后的 ASCII码值 刚好等于 A 的ASCII码值
这个条件运算符的意思是: 如果ch是大写字母,则不变,否则在ASCII码上 +32
而 ch!=(ch>='A'&&ch<='z')?ch:(ch+32) 是一个关系表达式, 关系表达式的结果 只有true和false
你说结果是A,
是说 ch的值 是A 呢, 还是 说其他的?
如果ch的值时A, 那么 说明可能ch初始值 就是 A
否则,就是 ch+32后的 ASCII码值 刚好等于 A 的ASCII码值
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据猜测,ch是char型?这个语句是用来判断?
如果是这样的话,那就是一个典型的关系符顺序问题。
你希望的应该是这样的顺序
ch != ((ch>='A'&&ch<='z')?ch:(ch+32))
但是实际生效的是
(ch!=(ch>='A'&&ch<='z')) ? ch : (ch+32)
于是
不管ch等于多少,如果你用这个作为判断条件,输出的结果永远为真,因为不管ch,还是ch+32都是非0。
为什么永远为真呢,即使ch=0(注意不是数值0,而是为(char)0)
ch != 0的情况:ch>='A' && ch <= 'z' 返回1或者0,永远不会等于ch,所以三目运算符?:的条件永远为真,将会返回ch
ch==0的情况
ch == (ch>='A'&&ch<='z')相等,三目运算符条件为假,返回ch+32,于是返回值也不为0
于是如果你把这个表达式作为判断条件,结果就永远是真了
如果是这样的话,那就是一个典型的关系符顺序问题。
你希望的应该是这样的顺序
ch != ((ch>='A'&&ch<='z')?ch:(ch+32))
但是实际生效的是
(ch!=(ch>='A'&&ch<='z')) ? ch : (ch+32)
于是
不管ch等于多少,如果你用这个作为判断条件,输出的结果永远为真,因为不管ch,还是ch+32都是非0。
为什么永远为真呢,即使ch=0(注意不是数值0,而是为(char)0)
ch != 0的情况:ch>='A' && ch <= 'z' 返回1或者0,永远不会等于ch,所以三目运算符?:的条件永远为真,将会返回ch
ch==0的情况
ch == (ch>='A'&&ch<='z')相等,三目运算符条件为假,返回ch+32,于是返回值也不为0
于是如果你把这个表达式作为判断条件,结果就永远是真了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-06-23
展开全部
刚做完这道题,我的学校给的答案是a。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询