Java之三元运算符

简介: Java之三元运算符

三元运算符

1. 基本语法

  • 条件表达式 ? 表达式 1: 表达式 2;
  • 运算规则:
  1. 如果条件表达式为 true,运算后的结果是表达式 1;
  2. 如果条件表达式为 false,运算后的结果是表达式 2;

口诀: [一灯大师:一真大师]

2. 案例演示 TernaryOperator.java

  • 分析:b 是先赋值再自减,所以 result = 99;接着 b 再自减 198
    int a = 10;
    int b = 99;
    // 解读
    // 1. a > b 为 false
    // 2. 返回 b--, 先返回 b的值,然后在 b-1
    // 3. 返回的结果是99
    int result = a > b ? a++ : b--;
    System.out.println("result=" + result);
    System.out.println("a=" + a); 
    System.out.println("b=" + b);

在这里插入图片描述

  • 如果把上面的 b-- 改为 --b,就是先自减再赋值。result = 98b 的结果也是 98

在这里插入图片描述

3. 三元运算符使用细节

  • TernaryOperatorDetail.java

1) 表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)

    //表达式1和表达式2要为可以赋给接收变量的类型
    //(或可以自动转换/或者强制转换)
    int a = 3;
    int b = 8;
    int c = a > b ? (int)1.1 : (int)3.4;//可以的
    double d = a > b ? a : b + 3;//可以的,满足 int -> double

2) 三元运算符可以转成 if--else 语句

    int res = a > b ? a++ : --b;
    if ( a > b ) res = a++;
    else res = --b;

4. 课堂练习

  • 案例:实现三个数的最大值。
    //案例:实现三个数的最大值
    int n1 = 553;
    int n2 = 33;
    int n3 = 123;
    //思路
    //1. 先得到 n1 和 n2 中最大数 , 保存到 max1
    //2. 然后再 求出 max1 和  n3中的最大数,保存到 max2
    
    int max1 = n1 > n2 ? n1 : n2;
    int max2 = max1 > n3 ? max1 : n3;
    System.out.println("最大数=" + max2);

在这里插入图片描述

  • 使用一条语句实现, 推荐使用上面方法。下面就是把上面 max1 给替换了下,结果还是一样的
int max = (n1 > n2 ? n1 : n2) > n3 ? 
           (n1 > n2 ? n1 : n2) : n3;
 System.out.println("最大数=" + max);     
目录
相关文章
|
2月前
|
Java
Java运算符
Java运算符
48 12
|
3月前
|
Java 测试技术 数据处理
Java零基础教学(17):Java运算符详解
【8月更文挑战第17天】Java零基础教学篇,手把手实践教学!
64 4
|
24天前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
31 7
|
25天前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
18 3
|
26天前
|
Java 测试技术 开发者
🌟Java零基础-Lambda运算符详解 🌟
【10月更文挑战第12天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
22 1
|
1月前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
50 4
|
1月前
|
安全 Java 测试技术
🌟 Java 零基础 | 详解 instanceof 运算符
【10月更文挑战第1天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
29 1
|
1月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
39 3
|
2月前
|
Java 测试技术 程序员
Java零基础(23) - Java赋值运算符,了解一下!
【9月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
59 11
|
3月前
|
Java 测试技术 计算机视觉
Java零基础(18) - Java运算符,了解一下!
【8月更文挑战第18天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 5