x == (x = y) 不等于 (x = y) == x ?
简评:不瞒你说,我现在数数都是从 0 开始数的,整数是 1024。
有这么一个 Java 程序:
class Quirky {
public static void main(String[] args) {
int x = 1;
int y = 3;
System.out.println(x == (x = y)); // false x = 1; // reset System.out.println((x = y) == x); // true }}
学习数学时我们学会了操作符优先原则,按照这个原则,这里的两次输出应该都是 true 才对,可为什么两次的输出结果不同呢?
其实 Java 中 == 是一个二进制相等运算符,简单而言就是在评估 == 右边操作数的任何部分之前,二进制运算符 == 的左边的操作数已经被完全评估过了。
//the example values
x = 1;
y = 3;
所以第一个运算式的步骤是:
x == (x = y)
1 == (x = y)
1 == (x = 3) //assign 3 to x, returns 3
1 == 3
false
第二个运算式是:
(x = y) == x
(x = 3) == x //assign 3 to x, returns 3
3 == x
3 == 3
true
原文链接:
Why is x == (x = y) not the same as (x = y) == x?stackoverflow.com
转载于:https://www.cnblogs.com/jpush88/p/11205646.html
x == (x = y) 不等于 (x = y) == x ?相关推荐
- 下面程序段的运行结果是: for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf(“x=%d,y=%d“,x,y); A)x=27,y=27 B)x=12,y=
下面程序段的运行结果是: for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf("x=%d,y=%d",x,y); A)x=27,y=27 B ...
- R语言ggplot2可视化:将条形图(bar plot)和线图(line plot)组合在一起并使用双Y轴(double y axis)进行可视化、其中一个Y轴显示为百分比
R语言ggplot2可视化:将条形图(bar plot)和线图(line plot)组合在一起并使用双Y轴(double y axis)进行可视化.其中一个Y轴显示为百分比 目录
- python输出print(x+y)_Python语句序列“x='car';y=2; print(x+y)”的输出结果是_学小易找答案...
[单选题]下列标识符中,合法的是( ). [填空题]若 a=10 ,那么 bin(a) 的值为 __________ . [单选题]如果在 Python 程序中没有导人相关的模块 ( 例如 impor ...
- python中x y表示_Python中表达式x += y和x = x+y 的区别详解
前言 本文主要给大家介绍的是关于Python中表达式x += y和x = x+y 区别的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 直接看下面代码: x +=y In [66]: id( ...
- [再寄小读者之数学篇](2014-11-19 $\sin(x+y)=\sin x\cos y+\cos x\sin y$)
$$\bex \sin(x+y)=\sin x\cos y+\cos x\sin y. \eex$$ Ref. [Proof Without Words: Sine Sum Identity, The ...
- python中x y 1_Python的X[y==1, 0]
最近研究逻辑回归,Iris花的经典示例,代码就不全粘贴了,具体代码参看"Iris花逻辑回归与实现" 1 plt.plot(X[y==0, 0], X[y==0,1], " ...
- python输出print(x+y)_Python语句序列“x='car';y=2;print(x+y)”的输出结果是() (2.0分)_学小易找答案...
[单选题]关于Python字符串,下列说法错误的是() (2.0分) [单选题]Python语句序列"x='car';y=2;print(x+y)"的输出结果是() (2.0分) ...
- x+=y与x=x+y有什么区别?
一般情况下,x+=y与x=x+y输出结果是等价的,因此两种写法是可以通用的,但是在某些临界值选用x+=y更加合适,比如: short n=3; n+=1;//编译通过 n=n+1;//编译失败 上述例 ...
- c语言用pow求x的y次幂,使用系统函数pow(x,y)计算x的y次方的值,注意包含头文件math.h...
#include //c语言 #include int main() { double m,x,y; printf("请输入两个数:"); scanf ("%d %d&q ...
最新文章
- redis3.0.0 集群安装详细步骤
- 用dotTace模仿下老赵的“使用Profiler分析程序性能”
- netcore中使用grpc
- 【重大更新】DevExpress v17.1新版亮点(ASP.NET篇)
- TradingView 初识
- Cassandra1.2文档学习(12)—— hint机制
- docker Gitlab14.5.0 安装、配置、部署、使用
- 二叉树知识点最详细最全讲解
- DT CMS致力于Spring Boot2.3.5 Vue前后端分离的RBAC权限框架(盛世美颜!)
- nginx出现 500 Internal Server Error的解决办法
- K8S_Google工作笔记0010---通过二进制方式_生成SSL证书文件
- FFMpeg写MP4文件例子分析
- HDU 6390 GuGuFishtion(莫比乌斯反演 + 欧拉函数性质 + 积性函数)题解
- 锐捷长ping_【路由】交换卡下的客户端无法ping通网关
- 数据分析必备软件Excel安装包+激活工具
- winRar禁止弹窗广告方法
- android 4.4 root精灵,ROOT精灵: 支持安卓4.3/4.4机型一键ROOT
- linux移动文件的命令是什么,linux移动文件命令
- hadoop day02
- 微分的概念和微分的基本公式与运算法则
热门文章
- CV Code | 本周新出计算机视觉开源代码汇总(含自动驾驶目标检测、医学图像分割、风格迁移、语义分割、目标跟踪等)...
- 提升Python程序性能的7个习惯
- 墨子科技成果是计算机,祖国强起来!为2017年这些重大科技成果打call
- 收藏 | 图解 Git 工作原理
- CVPR2021 Oral|只用静态图,实时渲染出丝滑3D效果
- 阿里公开自研AI集群细节:64个GPU,百万分类训练速度提升4倍
- 笔记 | 《机器学习》手推笔记更新集成学习(Boosting和随机森林)
- 译文 | 与TensorFlow的第一次接触第二篇:线性回归
- java软件架构设计方案_Java软件架构设计慨论
- 使用google map实现周边搜索的功能_「转」“搜索”的原理,架构,实现,实践,面试不用再怕了...