2 lzz145 lzz145 于 2016.02.29 19:20 提问

新手关于java三元运算符的提问

max>arr[x]?(max1=max):(max1=arr[x]);

如果max>arr[x]是true,则把max赋给max1,如果max>arr[x]是false,则把arr[x]赋给max1
这里为什么语句错误,问号后面不能赋值运算吗

4个回答

qq_28504185
qq_28504185   2016.02.29 19:45

你是否设接收类型 和值 比如说可以这样写 int max1=max>arr[x]?max:arr[x]);

希望对你有用 我也是新手 ~

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 19:49

这是不是有语法错误,x变量是在哪里定义的。三目运算要求第一个语句要是布尔类型的。
我这里测试了又编译错误Type mismatch: cannot convert from int to boolean。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 19:54

补充下三目运算符基础:<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.

wanghjbuf
wanghjbuf   2016.02.29 20:29

这里要考虑Java的运算符优先级,我将会在近期出一个关于这个优先级的博文,欢迎进行技术交流

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!