三目运算符

【唐老狮】C#——三目运算符 ​​目前学习的知识点之间,相互配合使用的有变量和算数运算符、变量和逻辑运算符、变量和条件运算符、变量和位运算符、条件运算符和逻辑运算符等等。我们学习的各个知识点,单独看起来都很简单,但是当组合起来使用时,很多同学就会找不到方向了,所以我会经常像这样给大家描述,谁和谁能够配合使用,这样你们可以自己去搭配使用,多做练习,多敲代码。感受组合应用的魅力。 ​​在我看来,写程序,就是使用各个知识点来进行不同的“排列组合”,最终实现功能需求。如果你觉得难,问题往往出在你对单个知识点理解... 阅读详情
 public static void main(String[] args) {
        int a = 1, b = 2;
        System.out.println(a == b ? 9.9 : 9);
        System.out.println(a == b ? 'a' : 98);
        System.out.println(a == b ? 'a' : Integer.MAX_VALUE);
        System.out.println(a == b ? 'a' : b);
        System.out.println(a != b ? 'a' : b);

        Map<String, Long> map = new HashMap<>();
        map.put("b", 1L);
        System.out.println(map == null ? -1L : map.get("a"));
}

结果如下:

9.0
b
2147483647
2
97
Exception in thread "main" java.lang.NullPointerException
	at com.xxp.aopDemo.uuu.Test.main(Test.java:18)
Process finished with exit code 1

说明:
在使用三目运算符时,尽量保证两个返回值的类型一致,不然会触发类型转换,转换规则如下:
1️⃣如果返回值 X 和返回值 Y 是同种类型,那么返回类型毫无疑问就是该类型。
2️⃣如果两个返回值 X 和 Y 的类型不同,那么返回值类型为它们俩最接近的父类。

// String 和 Boolean 都实现了 Serializable 接口
 Serializable serializable = a == b ? "true" : Boolean.FALSE;
 // 所有类都继承了 Object 类
 Object o = a == b ? new ArrayList<>() : new TernaryOperatorDemo();

3️⃣对于基本数据类型,其中一个返回值 X 类型为 byte、short 或者 char,另一个返回值 Y 类型为 int。如果在编译期就能判断出 Y 的取值范围在 X 的取值范围之内,则返回类型为 X 的类型,反之则为 Y 的类型。如果返回值 X 类型不为以上几种,则会触发隐式类型转换。
4️⃣当基本数据类型和对象数据类型相遇时,三目运算符默认返回结果为基本数据类型。

public static void main(String[] args) {
    int a = 1, b = 2;
    // 触发隐式类型转换,int 类型 9 转为 9.0D
    System.out.println(a == b ? 9.9 : 9);
    // 编译期判断,98 在 char 之内,转为 b
    System.out.println(a == b ? 'a' : 98);
    // 编译期判断,超出char范围,统一转 int
    System.out.println(a == b ? 'a' : Integer.MAX_VALUE);
    // 编译期时无法判断 b 的取值,触发隐式类型转换,统一转 int
    System.out.println(a == b ? 'a' : b);
    System.out.println(a != b ? 'a' : b);

    Map<String, Long> map = new HashMap<>();
    map.put("b", 1L);
    // 基本数据类型和对象数据类型相遇时,默认转为基本数据类型
    // map.get("a") 返回 null,转为基本数据类型时,报空指针异常
    System.out.println(map == null ? -1L : map.get("a"));
}
Java 三目运算符 立即下载

相关推荐

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

Android学习之---(重回Java(03))数据类型、数据类型强转、转义字符、逻辑运算符、位运算符、三目运算符,简单通俗教学

基本数据类型-数值型-整数类型 整数分为4个类型,byte、short、int、long,为什么一个整数要划分为这么多类型呢,可能很多人知道,但也有人不知道,这里还是讲一下,其实就是因为它们在内存当中占用的大小不同,byte空间占用很小,它是以一个8位来表示的,就是8个二进制位来表示一个字节数据,而short是以16个来表示的,一个8位中的0和1通过不同的排列组合生成的数是有限的而16个生成的数...

u014093134的博客 546

SFM(structure from motion 从运动恢复结构)和MVS(multi-view stereo 多视图立体视觉)

主要目的:SFM是重建稀疏点云的,MVS重建的是稠密点云。 输入的数据:SFM是没有标定的数据,而MVS输入的是标定的数据。 为什么SFM无法重建出稠密的点云,但是MVS可以? SFM中我们用来做重建的点是由特征匹配提供的!这些匹配点天生不密集!MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 SFM和MVS关系 SFM给MVS算好了输入视角的位姿,内参,稀疏点云以及它们的共视关系,MVS再利用这些信息以及彩色图

Vpn_zc的博客 1万+

Android DataBinding之布局中(layout)事件、运算逻辑、资源、工具类的使用与详解(七)

如果你学习了我前面的六篇文章,基本能够熟悉的处理data binding在开发过程的大多数业务,但是由于layout中的数据不一定满足UI上的效果,正常都是提前处理好数据,如果我们在layout引入中事件、运算逻辑、资源、工具类?那么代码层会显的很自然和干净。了解了layout可以引入这些后,我们应该期待一下这些类的在layout的布局中如何使用?

1478

《UE4游戏开发》之 《查cook资源失败,问题记录》

当项目打包时,cook出错,但是从原始引擎提供的信息中,没有提示具体的那个资源出错,要查到出错资源,还是非常麻烦。 下面就材质cook出错,增加一些日志,方便查找问题做简单记录 材质cook的一个阶段,是收集MaterialShaderMap,如果在这个阶段收集的信息出错,将会在FShaderMapContent::GetOutdatedTypes函数中,因为Shaders指针指向的内存有问题而出错,通过断点发现,FShaderMapContent这个类对象指针为null,而这个类对象的来源于AllMat.

qq_21919621的博客 2580

GEOS-Chem笔记——模式下载安装+驱动数据+运行流程

看过我博客的会发现我写了很多CESM的笔记,但是说实话,平时科研我其实更多时候是GEOS-Chemuser。之所以写了很多CESM笔记,其实是因为不会,就边学边写。然后GEOS-Chem已经用比较熟了,所以也没想过做笔记啥的。但是我发现越来越多朋友私信我各种CESM问题,我觉得我可能给大家营造了一种我是CESM达人的错觉。感觉自己有点跑偏了呢。公平起见,我觉得我有必要补充点GEOS-Chem笔记。 GEOS-Chem是研究大气化学的人常用的大气化学传输模式,在全世界范围的大气化学研究组中被广泛使用。不过.

砍柴姑娘Jourosy的博客 1万+

三元运算符(三目运算符)

三元运算符(三目运算符) 基本格式:条件表达式 ? 表达式1 : 表达式2 含义:如果条件表达式的值为true则返回表达式1,否则返回表达式2,注意返回值要对应表达式的类型。 三元运算符类似于if...else...,可读性并不如if...else...,只是可以精简代码,但还是推荐前者 举个例子吧 public class Dome { public static void main(String[] args){ int i=10; int j=9;

Lkskywalker的博客 1832

ChatBI告别“NL2SQL依赖症”!从准确率50%到90%,3大技术路线+4个企业案例拆解核心玩法

摘要: ChatBI通过自然语言交互实现数据民主化,其核心是“语义理解+数据执行+知识沉淀”的全链路能力,而非单一的NL2SQL技术。行业采用三大技术路线提升准确率:专有知识库(提升30%)、指标标签语义层(准确率85%)、JSON中间层(多轮对话提升25%)。数据执行方案包括NL2SQL、NL2API等,需结合场景选择。企业落地需解决四大痛点:跨表查询准确率低(引入拓扑图)、模糊查询(用户干预机制)、响应慢(预计算缓存)、多轮对话(上下文池)。Spring AI Alibaba提供轻量级集成方案,助力企业

weixin_52610848的博客 1650

三目运算符使用

撰写时间:2019年07月27日 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。 定义: 对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x...

Yangll29的博客 10万+

OPTI Toolbox v2.28 安装与 3 个求解器补全:SCIP、SeDuMi、MOSEK 配置详解

本文详细介绍了OPTI Toolbox v2.28在MATLAB环境下的完整安装指南,包括SCIP、SeDuMi和MOSEK三个关键求解器的配置与优化技巧。通过分步指导和实战案例,帮助用户高效搭建强大的优化工具包,提升混合整数规划、二次约束二次规划等复杂问题的求解效率。

weixin_29039773的博客 350

Sentinel-1 Burst数据处理避坑实录:从aria2c报错到wget脚本救场

本文详细介绍了Sentinel-1 Burst数据处理的完整解决方案,从下载困境到高效处理技巧。针对aria2c报错等常见问题,提供了增强版wget脚本和智能分组方法,显著提升下载成功率和处理效率,特别适合科研机构和企业级网络环境下的哨兵数据处理需求。

weixin_42641998的博客 282

C语言三目运算符

1、三目运算符 三目运算符也叫条件运算符、三元运算符,是由一个问号和一个冒号组成。 语法: 表达式1?表达式2:表达式3; 语义: 先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。 int a,b,c; a=7; b=6; c=(a>b)?a...

C语言技术网-码农有道 3万+

服务器搭建原神私服教程

项目的稳定版分支提供了编译好的服务端程序,但是博主觉得还是用dev版本的比较好。dev版本需要自己编译的,不要听到编译这两个字就头大,相反,这个服务端的编译相当简单。把文件中的两个IP地址127.0.0.1修改为你服务器的地址,修改完成后按 esc 输入 :wq。Mongodb作为服务端的数据库使用,我们这里安装最新版的Mongodb5。注意:如果想要使用最新版的服务端,必须安装>=17版本的java。tmux可以保证你关掉控制台的时候,程序依然继续运行。至此,服务端所需要的运行环境全部配置完成。

用最简单的方式说最重要的事!服务器、存储、云计 算、A智能的大数据产品、游戏开发技术。致力于广 大开发者、政企用户、各项机构等,构建云上世界提供全方位云计算解决方案。旨在打造差异化的开放式闭环生态系统帮助用户快速构建稳定、安全的云计算环境。 1万+

C++三目运算符

C++中的三目运算符(Ternary Operator)是一种简洁的条件表达式语法,用于在一个表达式中实现简单的条件判断。它的语法和使用场景非常简单但非常有用,尤其是在需要简化代码或进行条件赋值时。以下是关于C++三目运算的详细教学,包括嵌套使用和代码示例的讲解。

weixin_44259499的博客 5362

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JAVA 三目运算符

JAVA 三目运算符三目运算符格式案例 三目运算符 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。其实三目运算符可以看作是简写的if判断语句。 格式 比较表达式?表达式1:表达式2; 根据比较表达式的计算返回一个true或者false。 如果是true,就把表达式...

weixin_41544711的博客 1309

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java中的三目运算符

Java中的三目运算符

m0_49889089的博客 6万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C++ 三目运算符

三目运算符是C++中一个比较重要的语法,今天我们来了解一下它的使用以及通过一些练习题巩固一下。 如何使用三目运算符? int a=10,b=20,c=0; //条件① 语句①语句② a<b ? c=1 : c=2; cout << c << endl; 如果条件①为真,就执行语句①; 如果条件①为假,就执行语句②。 条件①语句①,语句②之间用问号和冒号隔开,问号和冒号输入时要用英文半角输入。 10小于20,条件①为真,...

qq_73262353的博客 1万+

java三目运算符

我的博客温存Blog欢迎访问我的小站,一起交流! 三目运算符开发中还是很常用的,同等的还有if else ,switch case 做一些简单的判断当然还是三目运算符最好用 三目运算符语法{ Boolean ? 结果一: 结果二 } 如果Boolean成立则会走结果一,否则则会走结果二 如果你觉得它只能判断单个条件,那么你就错了,它也可以用来多重判断 { Boolean ? 结果一...

与情深 | chacode.cn 3367

什么是三目运算符?三目运算符怎么使用?

三目运算符又称为“三元运算符”和“条件运算符”,在java、C、C++、python、JavaScript、PHP等编程语言中都有三目运算符。三目运算符的作用就是判断,可以理解为if条件判断的简化版。

zy1992As的博客 7万+

python三目运算符判断大小_Python——三目运算符

一、三目运算符1、if语句三目运算符语法格式Python可以通过if'语句来实现三目运算符的功能,因此可以把这种if语句当做三目运算符,具体语法格式如下:返回True执行 if 表达式 else 返回False执行例:a = "返回True执行" if 3 > 4 else "返回False执行"print (a)运行结果:返回False执行实际上,如果只是为了在控制台输出信息,可以修改如下...

weixin_39654058的博客 2425

浅谈三目运算符

百度对于三目运算符的定义如下: 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。 三目运算符的应用格式如下<表达式1> ? <表达式2> : <表达式3>,意思就是假如表达式1是真,那么就去执行表达式2,否则就执行表达式3. 举个例子吧 #include<stdio.h> int main() { int a = 0; ..

weixin_64448174的博客 3119

Python——三目运算符

一、三目运算符 1、if语句三目运算符语法格式 Python可以通过if’语句来实现三目运算符的功能,因此可以把这种if语句当做三目运算符,具体语法格式如下: 返回True执行 if 表达式 else 返回False执行 例: a = "返回True执行" if 3 > 4 else "返回False执行" print (a) 运行结果: 返回False执行 实际上,如果只是为了在控制...

weixin_43829701的博客 715
上一篇: String.valueOf(null)
下一篇: Java 字符串为何不可变
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值