java中的三元表达式_逻辑运算符两侧的数据类型

java中的三元表达式_逻辑运算符两侧的数据类型一、分析当你使用三元运算符,两边的操作数的类型不一致的时候,这就涉及到三元操作符的转换规则:1.若果两个操作数不可转换,则不做转换,返回值为Object类型。2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换。int类型转换为long类型,long类型转换成float类型。3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型为T,那

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、分析

当你使用三元运算符,两边的操作数的类型不一致的时候,这就涉及到三元操作符的转换规则:

1.若果两个操作数不可转换,则不做转换,返回值为Object类型。

2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换。int类型转换为long类型,long类型转换成float类型。

3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型为T,那么,若数字S在T的范围内,则转换为T类型;若S超过了T的范围,则T转换为S类型。

4.若两个操作数字都是直接数字。则返回值类型为范围较大者。

二、场景

java中的三元表达式_逻辑运算符两侧的数据类型

分析,两个三元操运算,条件都为真,返回第一个值,结果“两者是否相等:true”。结果果真如此吗?结果“两者是否相等:false”!

问题出在于100和100.0这两个数字上:

在变量s中,第一个操作数(90)和第二个操作数(100)都是int类型,类型相同,返回的是int型的90;

在变量s1中,第一个操作数类型为(90)int类型,第二个操作数是(100.0)浮点型。 

可是三元操作符必须返回同一个数据,而且类型要确定,不可能条件为真返回int类型,条件为假返回float类型,编译器是不会允许的,所以进行类型转换了。int转换成90.0,也就是所返回值是90.0当然和90不相等了。 

三、建议

保证三元操作符中的两个操作类型一致,即可减少错误的发生。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179538.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月21日 上午11:16
下一篇 2022年10月21日 上午11:16


相关推荐

  • eclipse下载安装步骤(eclipse下载安装步骤)

    Eclipse是JavaWeb开发最常用的工具,下面详细介绍一下如何下载安装最新版Eclipse。一、Eclipse下载1.输入网址:https://www.eclipse.org/downloads/我们会到官网中找到如下的下载按钮,但默认下载的是Windows操作系统的64位,我们点击DownloadPackages选择其他类型的下载包2.选择EclipseIDEf…

    2022年4月16日
    144
  • 向下取整和向上取整的符号_python向上取整函数

    向下取整和向上取整的符号_python向上取整函数向上取整,运算称为Ceiling,用数学符号⌈⌉(上有起止,开口向下)表示,。向下取整,运算称为Floor,用数学符号⌊⌋(下有起止,开口向上)表示。注意,向上取整和向下取整是针对有浮点数而言的;若整数向上取整和向下取整,都是整数本身。四舍五入:更接近自己的整数;把小数点后面的数字四舍五入 即:如被舍去部分的头一位数字小于五,则舍去;如大于等于五,则被保留…

    2025年8月24日
    17
  • linux 卸载cuda_华为qq启动异常请卸载重装

    linux 卸载cuda_华为qq启动异常请卸载重装Linux下CUDA卸载不完全与重装失败由于需要使用Tensorflow,需要安装CUDA与和cuDNN,第一次安装时,安装的CUDA版本太高,导致无法和Tensorflow匹配,因此需要卸载掉CUDA。卸载的方法:网上有说明可以通过以下语句卸载,但我并没有在相应目录下面找到卸载脚本,cd/usr/local/cuda/binsudo./uninstall_cuda_x.x.p…

    2025年9月20日
    10
  • Claude Code 中接入 Kimi K2 大模型

    Claude Code 中接入 Kimi K2 大模型

    2026年3月12日
    1
  • linuxtop命令详解(xargs命令详解)

    查看多核CPU命令 mpstat-PALL 和 sar-PALL  说明:sar-PALL>aaa.txt  重定向输出内容到文件aaa.txt top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WEB服务器的top监控截图,讲

    2022年4月16日
    38
  • c++ com 组件

    c++ com 组件用 VC 编程所必需掌握的几个关键概念 这里所说的均是用 C 语言条件下的 COM 编程方式 1 COM 组件实际上是一个 C 类 而接口都是纯虚类 组件从接口派生而来 我们可以简单的用纯粹的 C 的语法形式来描述 COM 是个什么东西 classIObject public virtualFunct 0 virtualF

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号