【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级

前情提要:

  • 【2023,学点儿新Java-45】位运算符:基本语法(左移<<、右移>>、无符号右移>>>、按位与&、按位或|、按位异或^、按位取反~) | 补充练习:逻辑运算符(区分&和&&、| 和 ||)
  • 【2023,学点儿新Java-44】逻辑运算符:基本语法、代码举例、案例练习(区分:&和&&,|和||)、&&与||综合应用(易错题、易混淆)
  • 【2023,学点儿新Java-43】比较运算符(关系运算符)==、!=、<、>、<=、>=、instanceof | 区分==和=的区别 |
  • 更多系列文章,可参阅本专栏或博主主页哦~

 
我如风,任去留,休将鸿鹄比伏囚。

 

作者主页: 追光者♂

        

个人简介:
 
[1] 计算机专业硕士研究生
 
[2] 2022年度博客之星人工智能领域TOP4
 
[3] 阿里云社区特邀专家博主
 
[4] CSDN-人工智能领域优质创作者
 
[5] 预期2023年10月份 · 准CSDN博客专家  
 

  • 无限进步,一起追光!!!

        

感谢大家 点赞  收藏⭐   留言!!!

        

本篇主要讲解条件运算符。从其基本语法格式开始介绍,给出简明的示例以及通俗易懂的练习题,并指出条件运算符与if-else的关系。随后给出了测试位运算符的基础代码以及对运算符的优先级做了简要的说明。

目录

  • 一、条件运算符
    • 1.1 基本语法
    • 1.2 示例
    • 1.3 练习
      • 1.3.1 练习1: 获取两个数中的较大值
      • 1.3.2 练习2:获取三个数中的最大值
      • 1.3.3 练习3:若今天是周2,那么10天以后是周几?
    • 1.4 附:条件运算符与if-else的转换关系
  • 二、测试 位运算符的使用
    • 2.1 测试代码
    • 2.2 测试输出
  • 三、补充:运算符优先级

一、条件运算符

1.1 基本语法

  • 条件运算符格式:
(条件表达式)? 表达式1:表达式2
  • 说明:条件表达式是boolean类型的结果,根据boolean的值选择表达式1或表达式2

【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级_第1张图片

  • 如果运算后的结果赋给新的变量,要求表达式1和表达式2为同种或兼容的类型。

1.2 示例

public class ConditionalOperatorExample {
    public static void main(String[] args) {
        int i = (1 == 2 ? 100 : 200);
        System.out.println(i); // 输出 200

        boolean marry = false;
        System.out.println(marry ? "已婚" : "未婚");

        int m1 = 10;
        int m2 = 20;
        double d1 = (m1 > m2) ? 1 : 2.0;
        System.out.println(d1);

        int num = 12;
        System.out.println(num > 0 ? true : "num非正数");
    }
}

结果输出:

【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级_第2张图片

1.3 练习

1.3.1 练习1: 获取两个数中的较大值

示例代码:

/**
 * @author CSDN@追光者♂
 * @create 2023年7月18日12:11:05
 */
public class ConditionExer1 {
    public static void main(String[] args) {
        //获取两个数的较大值
        int m1 = 10;
        int m2 = 20;

        int max1 = (m1 > m2)? m1 : m2;
        System.out.println("m1和m2中的较大值为" + max1);
    }
}

测试输出:

【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级_第3张图片

 

1.3.2 练习2:获取三个数中的最大值

/**
 * @author CSDN@追光者♂
 * @create 2023年7月18日
 */
public class ConditionExer2 {
    public static void main(String[] args) {
        int n1 = 23;
        int n2 = 13;
        int n3 = 33;
        //写法1:
        int tempMax = (n1 > n2)? n1:n2;
        int finalMax = (tempMax > n3)? tempMax : n3;
        System.out.println("三个数中最大值为:" + finalMax);

        //写法2:不推荐,可读性差
        int finalMax1 = (((n1 > n2)? n1:n2) > n3)? ((n1 > n2)? n1:n2) : n3;
        System.out.println("三个数中最大值为:" + finalMax1);
    }
}

结果输出:

【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级_第4张图片
 

1.3.3 练习3:若今天是周2,那么10天以后是周几?

要求:控制台输出"今天是周2,10天以后是周x"。

实现:

/**
 * @author CSDN@追光者♂
 * @create 2023年7月18日
 */
public class ConditionExer3 {

    public static void main(String[] args) {
        int week = 2;
        week += 10;
        week %= 7;
        System.out.println("今天是周2,10天以后是周" + (week == 0 ? "日" : week));
    }

}

结果输出:

【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级_第5张图片

 

1.4 附:条件运算符与if-else的转换关系

  • 凡是可以使用条件运算符的地方,都可以改写为if-else结构。反之,不成立。

  • 开发中,如果既可以 使用条件运算符,又可以使用 if-else,推荐使用 条件运算符。因为执行效率稍高。

//if-else实现获取两个数的较大值

int i1 = 10;
int i2 = 20;

int max;//声明变量max,用于记录i1和i2的较大值

if(i1 > i2){
    max = i1;
}else{
    max = i2;
}

System.out.println(max);//20

 

二、测试 位运算符的使用

2.1 测试代码

/*
测试运算符的使用5:位运算符

1. <<   >>   >>>   &  |  ^  ~

2. 说明:

① <<   >>   >>>   &  |  ^  ~ :针对数值类型的变量或常量进行运算,运算的结果也是数值
② 
<< : 在一定范围内,每向左移动一位,结果就在原有的基础上 * 2。(对于正数、负数都适用)
>> : 在一定范围内,每向右移动一位,结果就在原有的基础上 / 2。(对于正数、负数都适用)

3. 面试题:高效的方式计算2 * 8 ? 

2 << 3 或 8 << 1

*/
class BitTest {
	public static void main(String[] args) {
		int num1 = 7;
		System.out.println("num1 << 1 : " + (num1 << 1));
		System.out.println("num1 << 2 : " + (num1 << 2));
		System.out.println("num1 << 3 : " + (num1 << 3));
		System.out.println("num1 << 28 : " + (num1 << 28));
		System.out.println("num1 << 29 : " + (num1 << 29));//过犹不及

		int num2 = -7;
		System.out.println("num2 << 1 : " + (num2 << 1));
		System.out.println("num2 << 2 : " + (num2 << 2));
		System.out.println("num2 << 3 : " + (num2 << 3));

		System.out.println(~9);
		System.out.println(~-10);

		
	}
}

2.2 测试输出

【2023,学点儿新Java-46】条件运算符:语法格式及示例;基础练习:获取两个数/三个数中的较大值;星期运算 | 附:测试代码 位运算符的使用 | 运算符优先级_第6张图片
 

三、补充:运算符优先级

运算符有不同的优先级,所谓优先级:就是在表达式运算中的运算符顺序。

上一行中的运算符 总是优先于下一行的。

开发建议:

  1. 不要过多的 依赖运算的优先级 来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序。
  2. 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。例如:
    (num1 + num2) * 2 > num3 && num2 > num3 ? num3 : num1 + num2;
优先级 运算符说明 Java运算符
1 括号 ()[]{}
2 正负号 +-
3 单元运算符 ++--~
4 乘法、除法、求余 */%
5 加法、减法 +-
6 移位运算符 <<>>>>>
7 关系运算符 <<=>=>instanceof
8 等价运算符 ==!=
9 按位与 &
10 按位异或 ^
11 按位或 `
12 条件与 &&
13 条件或 `
14 三元运算符 ? :
15 赋值运算符 =+=-=*=/=%=
16 位赋值运算符 &=、`

 


 

热门专栏推荐

  • Python&AI专栏:【Python从入门到人工智能】
  • 前端专栏:【前端之梦~代码之美(H5+CSS3+JS.】
  • 文献精读&项目专栏:【小小的项目 (实战+案例)】
  • C语言/C++专栏:【C语言、C++ 百宝书】(实例+解析)
  • Java系列(Java基础/进阶/Spring系列/Java软件设计模式等)
  • 问题解决专栏:【工具、技巧、解决办法】
  • 加入Community 一起追光:追光者♂社区

 

持续创作优质好文ing…✍✍✍

 

记得一键三连哦!!!

 

求关注!求点赞!求个收藏啦!

在这里插入图片描述

你可能感兴趣的:(JavaSE,条件运算符,if-else,位运算符,运算符优先级,JavaSE最新教程,三元运算符)