首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 三目运算符细节详解

参考链接: Java 中的运算符 Java 三目运算符细节详解  @author:Jingdai @date:2020.09.24   看到标题你肯定觉得三目运算符有什么好讲的,不是很简单嘛。...短路问题   首先我们都知道Java中 && 和 || 的运算是具有短路效果的,如果逻辑运算符的第一部分能确定运算的结果,就不会再去计算逻辑运算符的第二部分,比如下面的代码,输出的 i 仍然是1,因为后面的运算短路了...,三目运算符也会有短路效果吗?...1 : ++i; System.out.println(i);  // 5  结果输出是 5 ,说明三目运算符也有类似逻辑运算符的短路问题,直接去 true 和 false 对应的地方取结果,不会计算另一部分...其实,当三目运算符的第二、第三个操作数分别为基本类型的包装类和基本数据类型时,并且选择了包装类那一项,则包装类会自动进行拆箱操作。

1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java|聊聊运算符中的“目”

    问题描述 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。...在前段时间,在许多关于Java的教程中,比如菜鸟教程和Java基础教程一书中,在关于运算符的知识块讲解时,都有提到一个字眼“目”。比如:条件运算符“?:”是一个3目运算符。...通俗的讲,就是在使用某运算符时,需要几个操作数去参与,就是几目运算符。...运算符按目分,总共可分为三类。分别为单目运算符,双目运算符,三目运算符。...单目运算符,自加(++),自减(--)等; 双目运算符,一般的加减乘除取模(+、-、*、/、%)等; 三目运算符只有一个,就是条件运算符“?:”。“op1 ? op2 : op3”。

    63620

    Swift 比较运算和三目条件运算

    } // 输出 "hello, world", 因为 `name` 就是等于 "world" 二:三目条件运算 三目条件运算的特殊在于它是有三个操作数的运算符, 它的原型是 问题 ?...它简洁地表达根据 问题 成立与否作出二选一的操作. 如果 问题 成立, 返回 答案 1 的结 果; 如果不成立, 返回 答案 2 的结果。...使用三目条件运算简化了以下代码: if question: { answer1 } else { answer2 } 这里有个计算表格行高的例子。...这比第二段代码简洁得多, 无需将 rowHeight 定义成变量, 因为它的值无需在 if 语句中改变。 三目条件运算提供有效率且便捷的方式来表达二选一的选择。...需要注意的事, 过度使用三目条件运算就会由简洁的代码变成难懂的 代码. 我们应避免在一个组合语句使用多个三目条件运算符。

    54120

    c语言三目运算符例子_单目运算符与双目运算符

    1.运算方向从左往右,从右往左结合,只有一个表达式被计算 百度百科:三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。...它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。 对于条件表达式b ? x : y,先计算条件b,然后进行判断。...如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。...说明三元运算符从右往左结合,但是运算还是从左往右。 2.表达式 (n>0)?

    1.6K30

    Java中的单目运算符,你真的掌握了吗?

    在Java中,单目运算符是一种对单个操作数进行操作的运算符。本文将着重介绍Java中的单目运算符,并提供一些实用的案例应用。...摘要   本文主要介绍Java中的单目运算符,包括递增、递减、正负号、逻辑非等常用运算符。通过对这些运算符的深入了解,我们可以更好地理解Java中的运算符,从而更加熟练地使用Java进行编程。...Java-单目运算符 简介   在Java中,单目运算符是一种只操作一个操作数的运算符。Java中的单目运算符包括递增(++)、递减(--)、正负号(+、-)和逻辑非(!)等运算符。...全文小结   本文介绍了Java中的单目运算符,包括递增、递减、正负号、逻辑非等运算符。通过对这些运算符的深入了解,我们可以更好地理解Java中的运算符,从而更加熟练地使用Java进行编程。...本文还提供了一些实用的案例应用,帮助读者更好地掌握单目运算符的使用方法。 总结   单目运算符是Java中重要的运算符之一,可以用于对变量的值进行增加、减少、取反等操作。

    30061

    Java中常用的单目运算符及用法详解

    前言  在Java编程中,运算符是不可或缺的一部分,它们是用于计算的特殊字符或关键字。本篇文章将介绍Java中的单目运算符。...摘要  本文主要介绍Java中的单目运算符,包括单目加法运算符(+)、单目减法运算符(-)、递增运算符(++)和递减运算符(--)。...通过源代码解析和应用场景案例,分析了单目运算符的使用方法和优缺点,最后给出了测试用例和全文小结。Java之单目运算符简介  单目运算符是只针对一个操作数进行运算的运算符。...在Java中,单目运算符主要包括单目加法运算符(+)、单目减法运算符(-)、递增运算符(++)和递减运算符(--)。单目加法运算符(+)  单目加法运算符(+)用于将操作数转换为正数。...小结本文介绍了Java中的单目运算符,包括单目加法运算符(+)、单目减法运算符(-)、递增运算符(++)和递减运算符(--)。通过源代码解析和应用场景案例,分析了单目运算符的使用方法和优缺点。

    30041

    Java中的三目运算符,你真的掌握了吗?

    环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8 @toc 前言   在Java开发中,三目运算符是比较常用的一种运算符,也是Java基础语法的一部分...在本篇文章中,我们将介绍三目运算符的基本使用方法和应用场景,使读者能够更好地理解和运用三目运算符。 摘要   本篇文章主要介绍Java中的三目运算符。首先从概念入手,阐述了三目运算符的意义和特点。...本文将帮助Java零基础的读者掌握三目运算符的基本使用方法,并能熟练应用到实际开发中。 Java-三目运算符 简介   三目运算符是Java中一种特殊的条件运算符,也被称为条件运算符或者三元运算符。...这段代码演示了Java中三目运算符的使用,包含三个测试方法:test1、test2和test3。   ...总结   三目运算符是Java中的一种特殊的条件运算符,它可以简化代码,提高代码的可读性。在实际开发中,三目运算符的应用场景非常广泛,能够帮助开发者更好地完成各种功能。

    1K61

    Java基础-运算符(二)

    本文链接:https://blog.csdn.net/weixin_42528266/article/details/102930781 位运算符 位运算符是对操作数以二进制比特位为单位进行操作和运算...y : z 唯一的三目运算符 执行过程 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值 package...com.cwl.base.day01; /** * @program: java_base * @description: 条件运算符(三元运算符) * @author: ChenWenLong...0 : -1)); } } 运算符的优先级 不需要去刻意的记优先级关系 赋值目目 理解运算符的结合性 ?...字符串运算符 package com.cwl.base.day01; /** * @program: java_base * @description: 字符串运算符 * @author: ChenWenLong

    28320

    java算术运算符(二)

    算术运算符的优先级 在Java中,算术运算符的优先级是固定的。具体来说,乘法运算符和除法运算符的优先级高于加法运算符和减法运算符,取模运算符的优先级与乘法运算符和除法运算符相同。...如果有多个运算符,优先级高的运算符会先执行。如果两个运算符的优先级相同,则从左到右依次执行。...下表列出了Java中算术运算符的优先级(从高到低): 运算符 描述 () 括号 * / % 乘法、除法、取模 + - 加法、减法 为了避免混淆和不必要的错误,建议在复杂的表达式中使用括号来明确运算顺序...算术运算符的使用示例 下面给出一些Java中算术运算符的使用示例。...在Java中,"+" 运算符还可以用于字符串的连接。当一个操作数是字符串时,Java会将另一个操作数转换为字符串,然后将两个字符串连接起来。

    36730

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

    前言  Java作为一门面向对象的编程语言,其特点体现在复杂对象的抽象、继承、多态、封装等方面。而作为一个程序员需要灵活运用Java语言的各种特性。本文将介绍Java语言中的三目运算符。...Java之三目运算符简介  Java语言中的三目运算符是一种特殊的运算符,常用于Java程序的条件判断部分。它的语法结构如下:条件 ? 表达式1 : 表达式2等价于下面的(condition)?...1,如果是,则将b的值赋为20,否则赋为30;在第二个三目运算符中,判断a是否等于10,如果是,则将b的值赋为20,否则赋为30。...如上用例代码演示了Java中的三目运算符。在该代码中,定义了两个整型变量a和b,并使用三目运算符求出a和b中的较大值,将其赋值给变量max,最后输出max的值。...总结  三目运算符是Java语言中的一种特殊的运算符,常用于Java程序的条件判断部分。它的优点是可以简化代码,提高代码的可读性,缺点是如果过多使用三目运算符,会导致代码可读性降低,不易维护。

    2.2K61

    《Java 开发手册》解读:三目运算符为何会导致 NPE?

    三目运算符 在《The Java Language Specification》中,三目运算符的官方名称是 Conditional Operator ?...简单的来说就是:当第二位和第三位操作数的类型相同时,则三目运算符表达式的结果和这两位操作数的类型相同。...其中 x3 和 x6 是三目运算符运算过程中,根据 JLS 的规则确定类型的过程中要做自动拆箱而导致的 NPE。由于使用了三目运算符,并且第二、第三位操作数分别是基本类型和对象。...最好的做法就是保持三目运算符的第二位和第三位表达式的类型一致,并且如果要把三目运算符表达式给变量赋值的时候,也尽量保持变量的类型和他们保持一致。并且,做好单元测试!!!...所以,《Java 开发手册》中提到要高度注意第二位和第三位表达式的类型对齐过程中由于自动拆箱发生的 NPE 问题,其实还需要注意使用三目运算符表达式给变量赋值的时候由于自动拆箱导致的 NPE 问题。

    1.7K00

    Java的位运算符(二)

    左移运算符(运算符(二进制位左移指定的位数,并在低位填充0。...然后我们使用左移运算符(二进制数左移两位,并将结果存储在变量b中。由于左移两位相当于将10乘以2的2次方(即40),因此结果为40。...右移运算符(>>)右移运算符(>>)用于将一个操作数的所有二进制位右移指定的位数,并在高位填充符号位。如果操作数是正数,则在高位填充0;如果操作数是负数,则在高位填充1。...无符号右移运算符(>>>)无符号右移运算符(>>>)用于将一个操作数的所有二进制位右移指定的位数,并在高位填充0。无符号右移运算符不考虑符号位,因此无论操作数是正数还是负数,在高位都填充0。...由于a是负数,因此在进行无符号右移运算时,在高位填充的是0而不是1。我们使用无符号右移运算符(>>>)将a的二进制数右移两位,并将结果存储在变量b中。

    15310

    Java基础系列(二):运算符

    前言 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。...true b >= a 为 true 运算符左侧的数值小于等于右侧,结果为true a <= b 为true 位运算符 Java定义了位运算符,应用于整数类型(int),长整型(long),短整型...注意: && 和 || 具有短路的特性,也就是当第一个条件可以判断最终结果的时候,就不会去判断第二个条件。...); 结果如下: true Java运算符优先级 最高优先级的在该表上方,最低优先级的在该表底部 类别 操作符 关联性 后缀 ()[]....: 从右到左 赋值 =,+=,-=,等等 从右到左 逗号 , 左到右 参考资料 Java运算符|菜鸟驿站 Core Java Volume Ⅰ-Fundamentals 下期预告 下一期我们来聊一下关于字符串的前世今生

    52230

    Java的赋值运算符(二)

    其他赋值运算符 除了基本赋值运算符、算术赋值运算符和位运算赋值运算符外,Java还提供了其他赋值运算符。这些赋值运算符包括条件赋值运算符(?:=)和空合并赋值运算符(??=)。...以下是这些赋值运算符的详细介绍及示例: 条件赋值运算符(?:=): 条件赋值运算符(?:=)用于在变量没有被初始化时,根据一个条件表达式来为变量赋值。如果变量已经被初始化,则不会执行任何操作。...在第二次赋值时,由于变量a已经被初始化,因此条件表达式的值为false,不会执行任何操作。 空合并赋值运算符(??=): 空合并赋值运算符(??=)用于将变量赋为非空的值。...以下是空合并赋值运算符的示例: String str = null; // str没有被初始化 str ??...在第二次赋值时,由于变量str已经被初始化,因此不会执行任何操作。

    24110
    领券