运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。本篇博客详细介绍Java基本语法中的运算符,主要包括算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符。


Java基本语法--运算符

算术运算符

♫♬♭♩♪:

♫ 如果对负数取模,可以把模数负号忽略不记,如:5 % (-2) = 1。 但被模数是

负数则不可忽略。取余的结果符号与被模数的符号相同。此外,取模运算的结果不一定总是整数。

♪ 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,结果只

保留整数部分而舍弃小数部分。如:12 / 5 * 5 = 10;

♬ “+”字符串相加功能外时需格外注意顺序,字符串与非字符串相“+”时结果还是一个字符串。如:System.out.println(“10 + 1 = ” + 10 + 1);结果为:10 + 1 = 101。

练习:

随意给出一个三位整数,打印显示它的个位数,十位数,百位数的值。

例如:数字621输出结果为:

百位数:6

十位数:2

个位数 :1

  1. public class getNumber {
  2. public static void main(String[] args) {
  3. int number = 621;
  4. int hundred = number / 100;
  5. int decade = number % 100 / 10;
  6. int bits = number % 10;
  7. System.out.println(number + "的百位是:" + hundred);
  8. System.out.println(number + "的十位是:" + decade);
  9. System.out.println(number + "的个位是:" + bits);
  10. }
  11. }

赋值运算符

* **符号:=**

➠ 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制

类型转换原则进行处理

➠ 支持连续赋值

  • 扩展赋值运算符: +=, -=, *=, /=, %=

    ➠ num += a;相当于num = num + a;

    ➠ num -= a;相当于num = num - a;

    ➠ num *= a;相当于num = num * a;

    ➠ num /= a;相当于num = num / a;

    ➠ num %= a;相当于num = num % a;

    ➠ 使用扩展赋值运算不会改变数字的性质

  1. //声明变量时赋值
  2. int i1 = 10;
  3. int j1 = 10;
  4. int i2 = 20,j2 = 20;
  5. //连续赋值
  6. int i3,j3;
  7. i3 = j3 = 30;
  8. //扩展赋值运算符
  9. short s1 = 1;
  10. // System.out.println(s1 + 1);编译失败,s1 + 1为int型无法赋值给short型变量
  11. s1++
  12. System.out.println(s1); //输出结果为2
  13. int a1 = 1,a2 = 1;
  14. a1 *= 0.1;
  15. System.out.println(a1); //结果为0,不改变变量i的性质
  16. System.out.println(a2 * 0.1); //结果为0.1,自动转换为double型

比较运算符

➠ 比较运算符的结果都是boolean型,要么是true,要么是false

➠ 注意区分“==” 与“=”的区别,不要混淆使用

  1. int i = 1;
  2. int j = 2;
  3. System.out.println(i == j); //输出false
  4. System.out.println(i = j); //输出2

逻辑运算符

&--逻辑与 |--逻辑或 !--逻辑非
&&--短路与 || —短路或 ^ —逻辑异或

➻ 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写

成x>3 & x<6

➻ “&”和“&&”的区别:

​ &时,左边无论真假,右边都进行运算

​ &&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

➻ “|”和“||”的区别:

​ |时,左边无论真假,右边都进行运算

​ ||时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

➻ 异或( ^ )与或( | )的不同之处是:当左右相同时,结果为false

✒ 开发中推荐使用‘&&’和‘||’

  1. /*&与&&的区别,|与||相同*/
  2. class Demo {
  3. public static void main (String [] args) {
  4. boolean b1 = false,b2 = false;
  5. int num1 = 1,num2 = 1;
  6. if(b1 & (num1++) > 0){
  7. System.out.println("Hello World!");
  8. }else{
  9. System.out.println("你好世界");
  10. }
  11. System.out.println(num1);
  12. if(b2 && (num2++) > 0){
  13. System.out.println("Hello World!");
  14. }else{
  15. System.out.println("你好世界");
  16. }
  17. System.out.println(num2);
  18. }
  19. }
  20. /*输出结果:
  21. 你好世界
  22. 2
  23. 你好世界
  24. 1
  25. */

练习:

  1. class Test {
  2. public static void main (String [] args) {
  3. boolean x = true;
  4. boolean y = false;
  5. short z = 42;
  6. if((z++ == 42)&&(y = true))z++;
  7. if((x = false) || (++z == 45)) z++;
  8. System. out.println("z=" + z);
  9. }
  10. }

鼠标移动到上显示结果


位运算符

位运算是直接对整数的二进制进行的运算

二进制码说明

  • 最高位为符号位0为正数,1为负数
  • 计算机底层都是使用二进制表示的数值,都以补码的方式来存储数据
  • 对于正数来说:原码、反码、补码是相同的,三码合一

左移右移原理示图: 

详细说明:


三元运算符

格式:(表达式)?表达式1 : 表达式2;

表达示正确时,结果为表达式1;表达式错误时,结果为表达式2。

  • 表达式1 和表达式2为同种类型
  • 三与 元运算符与if-else
  • 三元运算符可简化if-else语句,但是if-else不一定可以转换为三元运算符
  • 三元运算符要求必须返回一个结果
  • if后的代码块可有多个语句
  • 如果可以使用三元运算符建议优先选择使用三元运算符(代码简单,效率高一些)

练习:

取两个数中的较大值

  1. class MaxNumInTwoNumber {
  2. public static void main(String args[]){
  3. int m = 23;
  4. int n = 12;
  5. int max = (m > n) ? m : n;
  6. System.out.println(max); //输出结果为23
  7. n = 23;
  8. String maxStr = (m > n)? "m大于n" : ((m == n)? "m等于n" : "n大于m")
  9. System.out.println(maxStr); //输出结果为:m等于n
  10. //三元运算符改为if-else语句
  11. n = 12;
  12. if(m > n){
  13. System.out.println("两个数中的最大值是:"+m);
  14. }else
  15. System.out.println("两个数中的最大值是:"+n);
  16. }
  17. }
  18. }

运算符的优先级

➠ 运算符有不同的优先级,所谓

优先级就是表达式运算中的运

算顺序。如右表,上一行运算

符总优先于下一行

➠ 只有单目运算符、三元运算符、

赋值运算符是从右向左运算的

✒ 开发中尽量使代码简洁效率,对于想优先运算的可以直接加(),一条运算不易过长,可分为多条进行运算


本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布

Java基本语法--运算符的更多相关文章

  1. Java基础语法-运算符

    1算术运算符 1.1运算符和表达式 运算符:对常量和变量进行操作的符号. 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式. 不同运算符链接的表达式体现的是不同类型的表达式 ...

  2. java基础语法运算符

    1.1                算数运算符++.--的使用 在一般情况下,算数运算符不会改变参与计算的变量值.而是在原有变量值不变的情况下,计算出新的值.但是有些操作符会改变参与计算的变量的值, ...

  3. Java 基本语法---Java运算符

    Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...

  4. JavaSE入门学习6:Java基础语法之运算符和语句(上)

    继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...

  5. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  6. Java基础语法(3)-运算符

    title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...

  7. 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结

    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...

  8. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

  9. 031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级

    031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级 本文知识点:Java中运算符的优先级 运算符的优先级问题 前面学习了很多的运算符,如果这些 ...

随机推荐

  1. redis 5.0.7 源码阅读——整数集合intset

    redis中整数集合intset相关的文件为:intset.h与intset.c intset的所有操作与操作一个排序整形数组 int a[N]类似,只是根据类型做了内存上的优化. 一.数据结构 ty ...

  2. Lucene之查询索引

    Query子类 TermQuery:根据域和关键词进行搜索 /** * termQuery根据域和关键词进行搜索 */ @Test public void termQuery() throws IOE ...

  3. Blazor client-side + webapi (.net core 3.1) 添加jwt验证流程(非host)第一步

    第一步,设置并检查CROS跨域请求 因为我们并不打算将Blazor 由webapi来进行host,所以Blazor和api将是两个域名,这样操作即方便以后单独使用Blazor来写前端,但后端采用已有或 ...

  4. (一)LoadRunner安装

    1.下载LR,双击exe安装程序,选择LoadRunner完整安装程序,如下图: 2.点击下一步 3.选择我同意,下一步 4.输入姓名和组织(可以不输入),下一步 5.点击浏览选择要安装的目录,建议使 ...

  5. request.getParameterMap获取不到数据问题

    最近在做javaweb项目的过程中发现使用request.getParameterMap( )方法获取jsp页面中的表单数据的时候发现获取不到,检查了好长时间最后发现问题是在jsp页面中. reque ...

  6. 解决BitLocker反复提示恢复密钥正确而无法进入系统的问题

    前一阵电脑因为装了grub,引导策略被改了.开Windows要求输入恢复密钥以进行恢复.我登陆过Microsoft账户所以在官网上找到了密钥并恢复了驱动器.但是进去提示"恢复密钥正确&quo ...

  7. pycharm的这些配置,你都知道吗

    前言 对于一枚pycharm工具的使用新手,正确了解这门工具的配置,在使用过程中遇到的很多问题也可以迎刃而解哦!! 文章篇幅有限,本篇文章提供以下配置手段: 1.字体大小调整 2.显示你需要的工具窗口 ...

  8. 硬件知识整理part1--电阻E系列行业规范

      仁者,人心也,义者,人路也. --孟子 “ E ”表示“指数间距”(Exponential Spacing) 在上个20世纪的电子管时代,电子元器件厂商为了便于元件规格的管理和选用.大规模生产的电 ...

  9. 动态加载js文件是异步的

    动态加载js文件是异步的. 今天调试一个错误,一个js方法各种调不到. 原因是因为所调方法的js文件是动态加载进来的. <script type="text/javascript&qu ...

  10. sass实现头条新闻列表页面

    Index.html <!DOCTYPE html> <html> <head> <title>今日头条</title> <meta ...