首页 > 编程语言 >入门篇-其之七-Java运算符

入门篇-其之七-Java运算符

时间:2024-08-31 16:39:34浏览次数:3  
标签:10 Java 运算符 入门篇 strValue 2023 其之七

入门篇-其之七-Java运算符(下)
合集 - iCode504的Java学习空间(13)
1.
入门篇-其之一-第一个Java程序
2023-07-23
2.
入门篇-其之二-Java基础知识
2023-09-04
3.
入门篇-其之三-基本数据类型及其转换
2023-09-06
4.
入门篇-其之四-字符串String的简单使用
2023-09-25
5.
入门篇-其之五-Java运算符(上)
2023-10-09
6.
入门篇-其之六-Java运算符(中)
2023-10-24
7.
入门篇-其之六-附录一-以Java字节码的角度分析i++和++i
2023-10-23
8.
入门篇-其之七-Java运算符(下)
2023-10-27
9.
入门篇-其之八-常用类的简单使用
2023-11-06
10.
入门篇-其之九-流程控制之条件判断
2023-11-23
11.
入门篇-其之十-流程控制之循环结构
2023-12-16
12.
入门篇-其之十一-流程控制之break和continue关键字
2023-12-20
13.
数组篇-其之一-数组的概念与一维数组
01-18
收起
一、三元运算符的使用
三元运算符(也称作三目运算符),使用:和?表示,其格式为:布尔表达式 ? 表达式1 : 表达式2

如果布尔表达式的计算结果是true,那么执行表达式1;否则,如果布尔表达式的计算结果是false,则执行表达式2。
表达式1和表达式2计算结果的数据类型必须要和左侧变量定义的数据类型保持一致。例如:表达式1和表达式2的计算结果都是double类型,那么左侧定义的变量类型也是double。
以下是三元运算符作用原理图:

未标题-1

以下是三元运算符在代码中的使用:

/**

  • 三元运算符的使用

  • @author ZhaoCong

  • @date 2023-10-25 11:57:21
    */
    public class Ternary {
    public static void main(String[] args) {
    byte byteValue1 = 20;
    byte byteValue2 = 30;

     byte result1 = byteValue1 > byteValue2 ? byteValue1 : byteValue2;
     System.out.println("result1 = " + result1);
    
     double doubleValue1 = 40.13;
     double doubleValue2 = 30.28;
    
     double result2 = doubleValue1 == doubleValue2 ? doubleValue1 : doubleValue2;
     System.out.println("result2 = " + result2);
    
     String strValue1 = "";
     String result3 = strValue1.length() == 0 ? "strValue1的长度是0" : "strValue1的长度不是0";
     System.out.println("result3 = " + result3);
    

    }
    }
    运行结果:

image-20231027105629436

三元运算符可以嵌套使用,但不推荐,原因是可读性变差。

String strValue = "iCode504";
int length = strValue.length();
// 不推荐嵌套的写法
String result = length > 0 ? length < 10 ? "strValue的长度在0~10之间" : "strValue的长度超过10" : "strValue的长度为0";
System.out.println("result = " + result);
嵌套式写法做进一步简化处理:

String strValue = "iCode504";
int length = strValue.length();
String result = length > 0 && length < 10 ? "strValue的长度在0~10之间" : "strValue的长度不在0~10之间";
System.out.println(result);
二、三元运算符和if语句的区别
共同点:三元运算符和if语句的作用都是用作条件判断。但二者也存在一些差别:

  1. 语法层面:在大多数情况下,三元运算符语法是一行语句,if语句可能是多行。例如:判断一个字符串的长度是否为0,以下分别是三元运算符和if语句的写法:

// 三元运算符写法
String strValue = "iCode504";
String result = strValue.length() == 0 ? "strValue的长度为0" : "strValue的长度不为0";
// if写法
String strValue = "iCode504";
String result;
if (strValue.length() == 0) {
result = "strValue的长度为0";
} else {
result = "strValue的长度不为0";
}
2. 代码可读性:对于简单的条件判断,使用三元运算符确实可以简化代码,但是如果是复杂条件或者嵌套,那么三元运算符会让代码变得更加复杂难以理解。

  1. 灵活性:if语句中可以在代码块中放入更多的表达式,但是三目运算符的表达式只能存在一个。

总体来说,三目运算符和if语句都有各自的优点和使用场景。在简单的情况下,使用三目运算符比较方便;在复杂情况下,使用if语句更合适。

三、运算符的优先级
前面学过和很多的运算符:例如算术运算符、比较运算符、逻辑运算符等等,如果这些运算符进行混合运算时,存在着一个优先级,即谁先计算,谁后计算的问题。数学中存在这样一条规定:先乘除,后加减。也就是说,乘和除是同一级别,二者的计算级别要比加和减的级别高。这条规定在Java中也完全适用。

以下是运算符的优先级顺序表(由高到低,这张表了解即可,不需要额外记忆):

运算符 关联性
() [] 从左向右
! ~ ++ -- 正负号 从右向左

  • / % 从左向右
    • 从左向右
      << >> >>> 从左向右
      < <= > >= instanceof 从左向右
      == != 从左向右
      & 从左向右
      ^ 从左向右
      | 从左向右
      && 从左向右
      || 从左向右
      ?: 从右向左
      = += -= *= /= %= &= |= ^= <<= >>= >>>= 从右向左
      使用括号()可以提升运算符的优先级。例如:
      //代码效果参考:https://www.h3cw.com/sitemap/post.html
      int value1 = 30;
      int value2 = 28;
      int value3 = 17;
      int result1 = value1 * value2 + value3; // 先乘除,后加减
      int result2 = value1 * (value2 + value3); // 有括号的优先计算
      原本加号的运算等级要比乘号的等级要低,但是给加法表达式加上括号以后,加法表达式优先计算,然后再计算乘除法。

合集: iCode504的Java学习空间
标签: Java
好文要顶 关注我 收藏该文 微信分享
iCode504
粉丝 - 5 关注 - 1
+加关注
00
升级成为会员
« 上一篇: 入门篇-其之六-Java运算符(中)
» 下一篇: Intellij IDEA安装与配置教程(Windows版)
posted @ 2023-10-27 17:18 iCode504 阅读(55) 评论(0) 编辑 收藏 举报
刷新评论刷新页面返回顶部
发表评论 升级成为园子VIP会员
编辑
预览
支持 Markdown

自动补全
退出 订阅评论 我的博客

[Ctrl+Enter快捷键提交]

【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】天翼云2核4G云服务器加购同规格数据库,3个月仅售21.7元
【推荐】2024阿里云超值优品季,精心为您准备的上云首选必备产品
【推荐】会员力量,点亮园子希望,期待您升级成为博客园VIP会员

编辑推荐:
· [WPF]数据绑定时为何会出现 StringFormat 失效
· OpenTelemetry 实战:从零实现应用指标监控
· 使用 asp.net core 8+vue3 实现高效音视频通话
· [kernel] 带着问题看源码 —— 脚本是如何被 execve 调用的
· 两个存在包名与类名均相同的Jar包,要在工程中同时使用怎么办?
阅读排行:
· 程序员失业日记4:半个月拿下4个offer
· .NET 摄像头采集
· 从代码到产品,我的IT职业成长之路
· 一个小小空格问题引起的bug
· 服务重启了,如何保证线程池中的数据不丢失?

标签:10,Java,运算符,入门篇,strValue,2023,其之七
From: https://www.cnblogs.com/longshao2024/p/18390442

相关文章

  • PHP运算符
    PHP中,赋值运算符=用于给变量赋值。在PHP中,算术运算符+用于把值加在一起。算术运算符';//换行echo($x-$y);//输出4echo'';//换行echo($x*$y);//输出60echo'';//换行echo($x/$y);//输出1.6666666666667echo'';//换行echo($x%$y);//......
  • 运算符
    算术运算符算术运算符包括:+,-,*,/,%,++,--+当左右两边都是数值型时,则做加法运算。当左右两边有一方为字符串,则做拼接运算。任何一个Java对象都可以转换为字符串。如果+作用于字符,就将字符转为整数进行计算。程序示例:publicstaticvoidmain(String[]args){......
  • 09.运算符重载
    9.运算符重载本小节将解释如何使C++的运算符能够处理类对象--一个称为运算符重载的过程。当运算符作用于类类型的运算对象时,可以通过运算符重载重新定义该运算符的含义。明智的使用运算符重载能令我们的程序更易于编写和阅读。9.1使用标准类库string中的重载操作符#include<......
  • JS 扩展运算符(...)
    平时在对接服务端的数据时,后端返回的数据格式总不尽相同,因此前端总是需要自己再把数据加工处理成自己想要的格式最近在表格中渲染数据数据时就遇到了部分渲染不出来的情况,后来发现是对层数据,不能直接渲染的原因。举个例子,一个数组或一个对象里面包含了另一个对象,那在第一层的属......
  • 04.循环语句 & 逻辑运算符
    4.循环语句and逻辑运算符4.1for循环for循环的基本结构为:两个分号是必不可少的,用while表示for可以写为:如果在for循环中,第一部分被省略,C++会假定判断条件始终为真,循环一直进行。程序经常在循环体中显示控制变量值或在计算中使用它,但这种使用不是必需的。控制变量通常用于......
  • 03.控制语句、运算符及bool类型
    3.控制语句、运算符及bool类型3.1算法任何计算问题都可以通过按特定顺序执行一系列操作来解决。用以下方法解决问题的程序:1.要执行的操作2.这些操作的执行顺序就叫做算法。指定程序中语句(操作)执行的顺序称为程序控制。3.3伪代码(Pseudocode)使用伪代码,不必担心C++中的......
  • 【xilinx】米联客 2022 版 ZYNQ SOC SDK 入门篇学习04PS-XADC 实验
    1.了解内置XADC4.3内置XADC介绍4:XADC外部采集接口1:共模输入ADC的模拟输入使用差分采样方案来降低共模噪声信号的影响。下图显示了差分采样方案的优势,电源的噪声和地上的噪声相互抵消,从而提高采样精度。当采集外部模拟输入信号的时候,只需要把外部模拟信号接入到VP......
  • 6 Python运算符和表达式
    本篇是Python系列教程第6篇,更多内容敬请访问我的Python专栏Python运算符和Java类似,但也有个别不同。Python表达式和Java的区别是Python表达式不用跟“;”结尾。1算术运算符算术运算符用于执行基本的数学运算,如加减乘除等。加法(+):将两个数相加。result......
  • C语言--运算符3
    自增自减运算符i++,i--运算符在后,在表达式中先用i的值,下条语句i的值自增或者自减#include<stdio.h>intmain(){inti=1;intnum;num=i++;printf("num=%d,i=%d\n",num,i);//num=1,i=2return0;}++i先加,后用#include<stdio.h>intmain(){inti=1;intnum;......
  • 【C++基础】多种函数重载和运算符重载
    目录一、函数重载1.参数类型不同的重载讲解2.参数个数不同的重载讲解3.参数顺序不同的重载讲解4.默认参数与函数重载讲解二、运算符重载1.运算符重载的基本语法示例讲解函数内部的操作:运算符的使用:2.运算符重载的常见用法2.1重载<<和>>运算符(用于输......