java三目运算符嵌套怎么用

boolean b = true?false:true==true?true:false;
System.out.println(b);
各位Java大神,输出结果是什么?为什么?求详细解释!!!

红色框框  部分是  解释 三目运算  嵌套

下面是 代码


public static void showThreeAlgorithm(){               //三目运算符

/*三目运算相当于 

if(i>j){

100;

} else{

200;

}*/

int i = 46;

int j = 97;

int z = i>j?i:j;

int y = i<j?i:j;

System.out.println("i>j?i:j的  值 : "+z);

System.out.println("i<j?i:j的  值 : "+y);

//用三元运算求出判断两个值是否相等,不相等 输出较大的值

int s = i==j?0:i>j?i:j;

// i等于j 则s = 0

// 否则判断 i 是否大于 j  大于 则 s = i 小于 则 s = j

System.out.println("输出S的值:\t"+s);

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-02
输出结果是false
我们把它分成两份,等号前和等号后,前:true?false:true,问号前就是表达式,表达式就是true,所以执行第一条语句:false。后:true?true:false;问号前还是true,执行true
现在false == true返回结果是false,所以b也就是false了追问

为什么不能从第二个true开始到最后看做是一个三目,返回结果为false,再和第一个三目比较,不是说三目嵌套是从右往左执行吗?

追答

-_-|| 双等号是双目运算符。。。你这也不算嵌套啊,只能算并用。两边的三目运算先算哪边无所谓的,我只是习惯性的从左往右算

追问

如果等号后面和前面一样,按你的意思应该输出true,可是运行输出false

追答

0 0不好意思,之前没看优先级,刚刚查了一下运算符优先级,==的优先级是比?:的优先级高的,所以这也是嵌套。相当于是true ? false : true ? true : false;-_-|| 结果还是false

追问

谢谢 我现在完全明白了

本回答被提问者采纳

java三目运算符嵌套怎么用
public static void showThreeAlgorithm(){ \/\/三目运算符 \/*三目运算相当于 if(i>j){ 100;} else{ 200;}*\/ int i = 46;int j = 97;int z = i>j?i:j;int y = i<j?i:j;System.out.println("i>j?i:j的 值 : "+z);System.out.println("i<j?i:j的 值 : "+y...

java三目运算符
java int i = (5 > 3) ? (5 + 3) : (5 - 3);在这个例子中,由于5确实大于3,所以i被赋值为8,即5 + 3的结果。三目运算符的计算顺序遵循从右到左的结合性,这意味着在复杂的嵌套结构中,我们需要从最右边的子表达式开始计算。对于你提供的复杂示例,从右到左的顺序为:`year > a....

java三目运算符
看到复杂嵌套的三目运算不要慌,慢慢的一层层剖析你会发现其实也就那样。根据三目定义 exp?st1:st2,exp的结果是个boolean类型的数据,如果是true则执行st1,如果为false则执行st2,所以 三目等价于if(exp){st1}else{st2},由此可见上述你给的可以更改成如下代码:if(year>a.year){ return 1; ...

Java三目运算符
String ptype = ptype12 == null ? "-定府控身料1" : ptype12;switch (Integer.valueOf(ptype)) { case -1:return ptype;\/\/ ... 其他case语句 ...} 如果必须使用三目运算符,可以将其写为:java return "9".equals(ptype12) ? ptype12 : (其他表达式);需要注意的是,三目运算...

三目运算符的用法
三目运算符的用法如下:1.当expression1的值为真(true)时,表达式的值为expression2的值;2.当expression1的值为假(false)时,表达式的值为expression3的值。拓展知识 条件运算符,是一个程序开发的术语,优先级高于赋值、逗号运算符,低于其他运算符。适用于程序开发。结合性 条件运算符具有右结合性...

java怎么用三目运算符,输入任意比较三个数大小,输出中间数?
1、打开Eclipse,创建一个Java工程,在此工程中新建一个Java类;2、在新建的Java类中利用Scanner类获取键盘输入的三个数,并且分别赋值给变量a,b,c;3、添加一个比较两个数的方法,将随机两个数进行比较,再让返回的最大值与最后一个值进行比较,即可得出最大值。具体实现代码如下:java">import ...

java语言if语句三种形式分别在什么时候使用
=null){即当con对象不为空时,需要执行 con.close(); con.close(); } 第二种:if(){}else{} int i=9; if(i<9){ System.out.println("i小于9"); }else{ System.out.println("i不小于9"); } 这种情况可以使用三目运算符: String s=i<9 ? "i小于9" : "i不...

java中我想输出的时候用三目运算符怎么用
a>b?"a大":"b大"

JAVA编写一个程序,从键盘上输入三个数,用三元表达式(boolean?ifTrue:if...
比较三个数 就必须三目运算符嵌套 import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入第一个数:");int a = sc.nextInt();System.out.println("输入第二个数:");int b = sc.nextInt(...

Java三目运算符
这里,Math.max() 函数用于返回两个数中的较大值。使用三目运算符可以更简洁地写出相同功能的代码:int x = (5 > 6) ? 6 : 5;在此示例中,条件判断部分(5 > 6)决定 x 的值。如果条件为真,则 x 赋值为 6;如果为假,则 x 赋值为 5。总之,Java 三目运算符是简化条件表达式和计算...

相似回答