Java 中的运算符

news/2024/12/2 16:49:56/

文章目录

    • 算术运算符
    • 赋值运算符
    • 关系运算符
    • 逻辑运算符
    • 三元运算符

算术运算符

  • 二元 + - * / %
  • 一元 ++ –

对于数值类型,最小使用计算的数值类型为 int

System.out.println(5 % 2); // 1
System.out.println(4 / 2); // 2
System.out.println(5 / 2); // 2 自动舍去法取整
System.out.println(5.0 / 2); // 2.5
// 算术表达式的结果,也有一个数据类型,它的数据类型为表达式中范围最大的那个数据的数据类型。
// 对于数值类型,最小使用的数值类型为 int
byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 会报错,因为计算时实际上是 int + int
int b3 = b1 + b2;
  • i++ 表示先使用 i 的值,再给 i 的值加 1。
  • ++i 表示先给 i 的值加 1,再使用 i 的值。
// 一元运算符 ++ --
int i = 0;
int j = i++;
System.out.println(i); // 1
System.out.println(j); // 0, i++ 表示先使用 i 的值,再给 i 的值加 1。int m = 0;
int n = ++m;
System.out.println(m); // 1
System.out.println(n); // 1, ++i 表示先给 i 的值加 1,再使用 i 的值。

赋值运算符

  • = += -= *= /= %=

复合赋值运算符,不会改变数据的类型。

byte b5 = 3;
// b5 = b5 + 10;  // 报错,因为赋值运算符的右边实际上是 int + int
// 复合赋值运算符,不会改变数据的类型
b5 += 10;  // 13, 这样是可以的,因为 += 是复合赋值运算符,它不会改变原有的数据类型。

关系运算符

  • == != > >= < <=
System.out.println(b5 == 13);  // true
System.out.println(b5 == 13.0);  // true

逻辑运算符

  • 非短路逻辑运算符 & | ! ^
  • 短路逻辑运算符 && ||

expr1 逻辑运算符 expr2

每个表达式的数据类型都是布尔类型(true 或 false)。

  • & 逻辑与,两个表达式都为 true 时,结果才为 true,否则为 false。两个表达式都必须计算出结果。
  • | 逻辑或,任意一个表达式为 true 时,结果就为 true,否则为 false。两个表达式都必须计算出结果。
  • ! 逻辑非,一元逻辑运算符,表示取反。
  • && 短路逻辑与,如果根据第一个表达式已经能够推导出结果,后面的表达式就不会执行。
  • || 短路逻辑非,如果根据第一个表达式已经能够推导出结果,后面的表达式就不会执行。
int i5 = 10;
boolean b6 = (i5 > 6) & (i5 < 9); // false
System.out.println(b6);
b6 = (i5 > 20) && (i5++ < 9); // 第二个表达式没有执行(短路了),所以 i5 的值不会变化
System.out.println(b6); // false
System.out.println(i5); // 10

三元运算符

  • exp1 ? exp2 : exp3

如果 expr1 的结果为 true,就执行 expr2,并将其结果返回;否则就执行 expr3,将其结果返回。

int i6;
i6 = i5 > 1 ? 3 + 3 : 4 + 4;
System.out.println(i6); // 6

http://www.ppmy.cn/news/40421.html

相关文章

一日一题:第五题---模拟散列表字符串哈希(好吧,今天确实勤奋了hh)

​作者:小妮无语 专栏&#xff1a;一日一题 &#x1f6b6;‍♀️✌️道阻且长&#xff0c;不要放弃✌️&#x1f3c3;‍♀️ ​今天主要发现两个很好用的结构&#xff0c;想做个记录 目录1.模拟散列表代码2.字符串哈希代码1.模拟散列表 题目描述 维护一个集合&#xff0c;支持…

第十四届蓝桥杯省赛C++ A组浅析

&#xff08;仅个人看法&#xff0c;对错未知&#xff0c;可以当做口胡QAQ&#xff09;如有错误请大佬们指出&#xff0c;有更好做法欢迎留言&#xff01; A 幸运数 暴力判不多说了 B 有奖问答 看到很多搜的&#xff0c;提供一个dp做法 dp[i][j]表示前i道题&#xff0c;答对…

如何面对游戏工业化时代的到来?资产管理的整体解决方案

“游戏工业化”、“游戏工业管线建立”、“大规模生产”—— 这些都是近几年在游戏研发行业越来越常听到的用词。 游戏工业化&#xff0c;是否意味着未来游戏产业会像生产流水线一样&#xff0c;游戏从业者在线上的不同节点分工合作&#xff0c;进行重复劳动&#xff1f;实际上…

和ChatGPT-4聊完后,我觉得一切可能已经来不及了

了然无味&#xff0c;晴空万里&#xff01;和ChatGPT-4开始了一场坦诚的沟通&#xff0c;它全程都表现出高情商&#xff0c;以及不断尽量安抚我的情绪&#xff0c;而这&#xff0c;恰恰令我脊背发凉。 部分文字截取 ZM&#xff1a;我能不能理解每次对话就是一次你的“生命” G&…

flex布局:输入框布局demo

目标效果 首先&#xff0c;生成输入框&#xff1a; 代码&#xff1a; 结果&#xff1a; 设置基本样式 包括&#xff1a;去除边距、设置父盒子的宽度(如果不设置宽度&#xff0c;会使用整个浏览器的宽度&#xff09;、添加父盒子边框等 代码&#xff1a; *{margin: 0;pad…

亚马逊修改远程登录SSH

1、更改 root 用户密码 sudo passwd root 2、切换到 root 用户 su root 3、修改 sshd_config 配置文件 vi /etc/ssh/sshd_config 4、开启密码验证 PasswordAuthentication yes 5、设定是否允许root管理员直接登录 PermitRootLogin yes 注意&#xff1a;如果 4、5项找不…

vue中使用ele中的tree树形控件

这里只演示获取当前选择层级例如&#xff1a;第一节点&#xff0c;第二节点和第三节点 <el-treeref"tree":data"data":show-checkbox"true"node-key"id"default-expand-all></el-tree><el-button click"getChecke…

分享88个ASP其他类别源码,总有一款适合您

分享88个ASP其他类别源码&#xff0c;总有一款适合您 88个ASP其他类别源码下载链接&#xff1a;https://pan.baidu.com/s/15Hx5mKAqhabvmdKij4C-3g?pwdxgrp 提取码&#xff1a;xgrp Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 我的博客地址&#xff1a;亚…