从入门到精通:Java三目运算符详细教程!

哈喽,各位小伙伴们,你们好呀,我是喵手。

今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

Java作为一门面向对象的编程语言,其特点体现在复杂对象的抽象、继承、多态、封装等方面。而作为一个程序员需要 灵活运用Java语言的各种特性。本文将介绍Java语言中的三目运算符。

摘要

本文将介绍Java语言中的三目运算符,包括其概念、语法、源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例(以main函数写法为准)、全文小结、总结。

Java之三目运算符

简介

Java语言中的三目运算符是一种特殊的运算符,常用于Java程序的条件判断部分。它的语法结构如下:

java 复制代码
条件 ? 表达式1 : 表达式2

等价于下面的

java 复制代码
(condition)?expr1:expr2

其中,如果condition表达式的返回值为true,则返回expr1的值;否则,返回expr2的值。它是一个非常灵活、简单易懂的运算符,经常被用在需要进行条件判断的场合中,比如if语句、循环语句等。

源代码解析

下面是三目运算符的源代码解析:

java 复制代码
public class ThreeOperatorsDemo {

    public static void main(String[] args) {
        int a, b;
        a = 10;
        b = (a == 1) ? 20: 30;
        System.out.println( "Value of b is : " + b );

        b = (a == 10) ? 20: 30;
        System.out.println( "Value of b is : " + b );
    }
}

上述代码定义了两个整型变量a和b,在第一个三目运算符中,判断a是否等于1,如果是,则将b的值赋为20,否则赋为30;在第二个三目运算符中,判断a是否等于10,如果是,则将b的值赋为20,否则赋为30。最终输出b的值,结果为:

java 复制代码
Value of b is : 30
Value of b is : 20

具体执行结果如下:

应用场景案例

三目运算符常用于Java程序的条件判断部分,例如:

java 复制代码
int max = (a > b) ? a : b;

上述代码中,如果a大于b,则将a的值赋给max,否则将b的值赋给max。

例如再给大家演示一下其常用场景:

  1. 判断输入的数字是否为奇数或偶数
java 复制代码
String result = (num % 2 == 0) ? "偶数" : "奇数";

拓展:

这段代码是一个三目运算符,用于判断变量num是否为偶数,如果是,将字符串"偶数"赋值给变量result,否则将字符串"奇数"赋值给变量result。

三目运算符的语法格式为:condition ? expr1 : expr2,其中condition是一个布尔表达式,如果为true,则返回expr1,否则返回expr2。在这段代码中,condition为(num % 2 == 0),表示判断变量num是否能够被2整除,如果能够被整除,则返回true,否则返回false。expr1为"偶数",expr2为"奇数"。

  1. 判断两个数字哪个更大
java 复制代码
int max = (a > b) ? a : b;

拓展:

这是一个三目运算符,格式为:(condition) ? value1 : value2,其作用是根据条件的真假来选择value1或value2的值。

在此代码中,意思是如果a大于b,则将max的值设为a,否则将max的值设为b。等价于以下普通if语句:

java 复制代码
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}
  1. 判断一个字符串是否为空
java 复制代码
String str = "";
boolean isEmpty = (str == null || str.trim().isEmpty()) ? true : false;

拓展:

这段代码定义了一个字符串变量 str,初始值为空字符串。接着,使用三目运算符判断字符串是否为空,如果为空或只包含空格,则将布尔变量 isEmpty 赋值为 true,否则将其赋值为 false

具体解释如下:

  • str == null 部分判断字符串是否为 null。
  • str.trim().isEmpty() 部分判断字符串去除空格后是否为空。

如果上述两个条件有一个满足,则 isEmpty 变量被赋值为 true,否则被赋值为 false

该段代码的作用是检查字符串是否为空或只包含空格,并将结果返回给布尔变量 isEmpty,方便后续的操作。

优缺点分析

优点

  • 三目运算符简单易懂,能够有效提高程序的可读性和简洁性。
  • 三目运算符可以避免代码中大量的嵌套if语句,降低代码的复杂度。

缺点

  • 三目运算符只适用于简单的条件判断,对于较为复杂的判断条件,使用三目运算符会使代码更加难以理解。
  • 三目运算符的使用需要慎重,过多的使用会降低代码的可读性和可维护性。

类代码方法介绍

以下是三目运算符的方法介绍:

方法名 方法描述
?: 三目运算符

如下为使用三目运算符判断两个数中较大值的代码实现:示例如下:

代码演示

java 复制代码
public class ThreeOperatorsDemo {

    public static void main(String[] args) {
        int a = 5;
        int b = 10;
        int max = (a > b) ? a : b;
        System.out.println("两个数中较大的是:" + max);
    }
}

测试结果

根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

代码分析

根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。   如上用例代码演示了Java中的三目运算符。在该代码中,定义了两个整型变量a和b,并使用三目运算符求出a和b中的较大值,将其赋值给变量max,最后输出max的值。运行该代码,输出结果为"两个数中较大的是:10"。

测试用例

以下是三目运算符的测试用例:

测试代码演示

java 复制代码
package com.example.javase.se.operators;

/**
 * Java之三目运算符演示
 *
 * @Author ms
 * @Date 2023-11-08 11:00
 */
public class ThreeOperatorsDemo {

    public static void main(String[] args) {
        int a, b;
        a = 10;
        b = (a == 1) ? 20 : 30;
        System.out.println("Value of b is : " + b);

        b = (a == 10) ? 20 : 30;
        System.out.println("Value of b is : " + b);
    }
}

测试结果

根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

测试代码分析

根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。

这段代码演示了 Java 的三目运算符。

在代码中,首先定义了两个整型变量 a 和 b,并将 a 赋值为 10。然后使用三目运算符语法,将 (a == 1) 作为条件表达式,如果条件成立则将 b 赋值为 20,否则赋值为 30。此时因为 a 不等于 1,所以 b 的值将为 30,并输出 "Value of b is : 30"。

接着,将条件表达式改为 (a == 10),由于 a 等于 10,所以条件成立,将 b 赋值为 20,因此输出 "Value of b is : 20"。

全文小结

本文介绍了Java语言中的三目运算符的概念、语法、源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例。通过本文的介绍,相信大家已经对三目运算符有了更深入的了解。

总结

三目运算符是Java语言中的一种特殊的运算符,常用于Java程序的条件判断部分。它的优点是可以简化代码,提高代码的可读性,缺点是如果过多使用三目运算符,会导致代码可读性降低,不易维护。在实际的Java开发中,需要根据具体的情况选择适合的条件判断方式,灵活运用Java语言的各种特性。

... ...

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

相关推荐
Dola_Pan2 小时前
Linux文件IO(二)-文件操作使用详解
java·linux·服务器
wang_book2 小时前
Gitlab学习(007 gitlab项目操作)
java·运维·git·学习·spring·gitlab
蜗牛^^O^2 小时前
Docker和K8S
java·docker·kubernetes
从心归零3 小时前
sshj使用代理连接服务器
java·服务器·sshj
IT毕设梦工厂4 小时前
计算机毕业设计选题推荐-在线拍卖系统-Java/Python项目实战
java·spring boot·python·django·毕业设计·源码·课程设计
Ylucius5 小时前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
凡人的AI工具箱5 小时前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
是店小二呀5 小时前
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
开发语言·c++·后端
七夜zippoe5 小时前
分布式系统实战经验
java·分布式
canonical_entropy5 小时前
金蝶云苍穹的Extension与Nop平台的Delta的区别
后端·低代码·架构