JAVA三目运算问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:13:47
大家先看一下代码
public class Demo08
{
public static void main(String arg[])
{
int i =5010;
int j = 20;
int max = 0;

max = i>j?i:j;
System.out.println("max的值是"+max);
}
}

我想问一下,为什么不能将这句代码“max = i>j?i:j”,
写成这样呢“i>j?max=i:max=j”!
请大侠指点一下啊!

i>j?max=i:max=j 显然不行
理由1:
先不说正确与否,三目运算返回的是值,必须有个接收它。如
max = i > j ? i : j;
写成i > j ? i : j; 就不可以。
根据这个理由,下面我们用max来接收它
理由2:

max = i > j ? max = i : max = j;
对吗? 不对。少了括号
max = i > j ? (max = i) : (max = j);

现在对了吗?从语法上看是正确的。
我们再从逻辑上看。
要注意(max = i) 和 (max = j)这是2个赋值语句,值应该是=右边的值,即分别为i 和 j
按照这个逻辑,我们先判断 i > j 的真假,如果为真,则要执行 max = i;
这相当于 执行了这个语句 max = (max = i);
反之相当于 max = (max = j);
逻辑上也正确了,不过绕这么半圈子,KKKKAAAAOOO 啊 哈哈

你的写法不符合格式。你自己查一下DOC文档。

...你写那叫什么?
编译器都不认识,那能编译吗。
要是按你这么说,那JAVA就别要语法了,你想怎么编就怎么编,那多容易,是不是