day04_java中的运算符

这篇具有很好参考价值的文章主要介绍了day04_java中的运算符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

运算符概述

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

运算符按照其要求的操作数数目来分,可以有单目运算符(1 个操作数)、双目运算符(2 个 操作数)和三目运算符(3 个操作数)。

运算符按其功能来分,有算术运算符、赋值运算符、 关系运算符、逻辑运算符、位运算符、条件运算符等等

下面我们就来学习一下常用的运算符

算术运算符

Java中的算术运算符,如下图所示

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

实例

public class Demo {
    public static void main(String[] args) {
        //  + - * : 跟小学数学的运算方式一样
        System.out.println(10 + 20); // 30
        System.out.println(10 - 20); //-10
        System.out.println(10 * 20); // 200
		/*
			/ : 整数相除,结果只能得到整数,如果想要得到带有小数的结果,必须加入小数(浮点类型)的运算
		*/
        System.out.println(10 / 2);    // 5
        System.out.println(10 / 3);    // 3
        System.out.println(10 / 3.0);  // 3.3333333333333335

		/*
			%(取模) : 取余数 5 / 2 = 商2, 余数为1
		*/
        System.out.println(5 % 2);    // 1
    }

}

“+”号的两种用法

  • 第一种:对于+两边都是数值的话,+就是加法的意思
public class Demo {
    public static void main(String[] args) {
        // char类型参与算术运算,使用的是计算机底层对应的十进制数值。
        char c = 'a';
        System.out.println(c+ 1);//98

        // 两边都是数值
        System.out.println(1+2);// 3
        System.out.println(1+1.2); //2.2
        
    }
}
  • 第二种:对于+两边至少有一边是字符串得话,+就是拼接的意思。+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。
public class Demo {
    public static void main(String[] args) {
        int a = 5;
        //能算则算,不能算就拼接在一起。
        System.out.println("abc" + 'a'); // abca
        System.out.println("abc" + a); // abc5
        System.out.println(5 + a); // 10
        System.out.println("abc" + 5 + 'a'); //abc5a
        System.out.println(15 + "abc" + 15); //15abc15
        System.out.println(a + 'a');//102
        System.out.println(a + "" + 'a');//5a
        System.out.println(a + 'a' + "it ");//102it
        System.out.println("it" + a + 'a');//it5a
        System.out.println("it" + (a + 'a'));//102it
    }
}

注意:

  • 和 的区别:两个数据做除法,/取结果的商,%取结果的余数。
  • 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

自增自减运算符

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

单独使用

变量在单独运算的时候,变量前++和变量后++,变量的是一样的;

  • 变量前++   :例如 ++a 
  • 变量后++   :例如 a++ 

实例:

public class Demo04Test {
    public static void main(String[] args) {
        /*
			单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的
	    */
        int a = 10;
        ++a;   //等价于 a = a +1;
        System.out.println(a);        // 11

        int b = 10;
        --b;   //等价于 b = b -1;
        System.out.println(b);        // 9
    }

}

复合使用

和其他变量放在一起使用或者和输出语句放在一起使用,前++和后++就产生了不同。

  • 变量前++ :变量先自身加1,然后再取值
  • 变量后++ :变量先取值,然后再自身加1

实例

/*
		参与操作:
			++在前: 先对该变量做自增(++)或者自减(--),然后再拿变量参与操作。
			++在后:	先将该变量原本的值,取出来参与操作,随后再进行自增(++),自减(--)。
	*/
public class Demo05Test {
    public static void main(String[] args) {
        // ++在前: 先对该变量做自增(++)或者自减(--),然后再拿变量参与操作。
        int a = 10;
        int b = ++a;
        System.out.println(a);		// 11
        System.out.println(b);		// 11


        // ++在后:	先将该变量原本的值,取出来参与操作,随后再进行自增(++),自减(--)。
        a = 10;
        b = a++;

        System.out.println(a);	// 11
        System.out.println(b);  // 10
    }
}

总结:

  • ++ 、-- 只能操作变量,不能操作字面量的。
  • 最常见的用法:单独使用

赋值运算符

赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。

基本赋值运算符 
/*
基本赋值运算符:	
		= : 将符号右侧的数据, 赋值给左边
*/
int a = 10; // 先看“=”右边,把数据10赋值给左边的变量a存储

扩展赋值运算符

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

实例

public class Demo06 {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        b += a;// 相当于 b = b + a ;
        System.out.println(a); // 3
        System.out.println(b); // 7

        short s = 3;
        // s = s + 4; 代码编译报错,因为将int类型的结果赋值给short类型的变量s时,可能损失精度
        s += 4; //  此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 3);
        System.out.println(s); // 7
    }
}

注意:扩展的赋值运算符隐含了强制类型转换

关系运算符

关系运算符是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

 实例

/*
   关系运算符(比较运算符) 都有哪些呢?
            >	>=   <   <=   ==    !=
*/
public class Demo{
    public static void main(String[] args) {
        int a = 3;
        int b = 4;

        System.out.println(a < b); // true
        System.out.println(a > b); // false
        System.out.println(a <= b); // true
        System.out.println(a >= b); // false
        System.out.println(a == b); // false
        System.out.println(a != b); // true
    }
}

注意事项:

  • 比较运算符,是两个数据之间进行比较的运算,运算结果一定是boolean值true或者false 
  • 其中>,<,>=,<=不支持boolean,String类型,==和!=支持boolean和String。

逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true false

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

逻辑运算符的特点

  • 操作数都是布尔类型,并且最终的运算结果也是布尔类型 

实例

/*
    逻辑运算符作用: 用于[整合]多个比较表达式的条件

        1. 连接多个比较表达式
        2. 连接true或false
    最终得到的结果都是boolean类型的true或false.
*/
public class Demo {
    /*
      逻辑运算符分类 :
          &(与) : 并且, 遇false则false, 只有符号左右两边同时为true, 结果才为true.
          |(或) : 或者, 遇true则true,   只有符号左边两边同时为false, 结果才为false
          !(非) : 取反
          ^(异或) : 相同为false, 不同为true.
  */
    public static void main(String[] args) {
        // &(与) : 并且
        System.out.println(true & true);        // true
        System.out.println(false & false);        // false
        System.out.println(true & false);        // false
        System.out.println(false & true);        // false
        System.out.println("------------------");
        // |(或) : 或者
        System.out.println(true | true);        // true
        System.out.println(false | false);        // false
        System.out.println(true | false);        // true
        System.out.println(false | true);        // true
        System.out.println("------------------");
        // !(非) : 取反
        System.out.println(!true);                // false
        System.out.println(!!true);                // true
        System.out.println("------------------");
        // ^(异或) :
        System.out.println(true ^ true);        // false
        System.out.println(false ^ false);        // false
        System.out.println(true ^ false);        // true
        System.out.println(false ^ true);        // true
    }
}

短路逻辑运算符 

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言
&&和&区别:

  • &&和&结果一样,&&有短路效果,左边为false,右边不执行;&左边无论是什么,右边都会执行。

||和|区别:

  • ||和|结果一样,||有短路效果,左边为true,右边不执行;|左边无论是什么,右边都会执行。 

实例

/*
在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,
没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。
同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。
*/
public class Demo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a > 100 && ++b > 10); // false
        System.out.println(b); // 20

        int i = 10;
        int j = 20;
        System.out.println(i > 2 || ++j > 10); // true

        System.out.println(j); // 20
    }
}

三元运算符

语法格式:

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

执行流程:

  1. 首先计算关系表达式的值
  2. 如果值为true, 取表达式1的值
  3. 如果值为false,取表达式2的值 

实例

public class Demo {
    /*
	声明三个整型的变量,a,b,c,要求找出最大值
	*/
    public static void main(String[] args) {
        // 1. 定义三个变量用于保存和尚的身高
        int a = 150;
        int b = 210;
        int c = 165;

        // 2. 用三元运算符 , 比较前两个变量,获取较大值。
        int tempMax = a > b ? a : b;

        // 3. 用三元运算符 , 让较大值和第三个变量比较,获取最大值。
        int max = tempMax > c ? tempMax : c;

        // 4. 输出结果
        System.out.println(max); // 210

    }
}

位运算符(了解)

  • 位运算符的运算过程都是基于补码运算,但是看结果,我们得换成原码,再换成十进制看结果
  • 从二进制到十进制都是基于原码
  • 正数的原码反码补码都一样,负数原码反码补码不一样
  • byte,short,char在计算时按照int类型处理
  • 如何区分&,|,^是逻辑运算符还是位运算符? 如果操作数是boolean类型,就是逻辑运算符,如果操作数是整数,那么就位运算符

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

详解:

  • 左移:<<  左移几位就相当于乘以2的几次方
  • 右移:>> 类似于除以2的n次,如果不能整除,向下取整
  • 无符号右移:>>> 往右移动后,左边空出来的位直接补0,不看符号位
  • 按位与:& 对应位都是1才为1
  • 按位或:| 对应位只要有1即为1
  • 按位异或:^ 对应位一个为1一个为0,才为1
  • 按位取反:~0就是1 ~1就是0

运算符优先级

在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-” 。

day04_java中的运算符,# JavaEE_01:JavaSE,java,开发语言

实例

public class Demo {
    public static void main(String[] args) {
        // 目标:看看Java是否存在优先级,大家以后需要注意优先级问题
        System.out.println(10 > 3 || 10 > 3 && 10 < 3);  //true
        System.out.println( (10 > 3 || 10 > 3 ) && 10 < 3); // false
    }
}

tips 文章来源地址https://www.toymoban.com/news/detail-804994.html

  • 表达式不要太复杂,如果不能确定优先级先算的使用小括号

到了这里,关于day04_java中的运算符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java-01变量、运算符、表达式、输入与输出

    tip:[start]编程是一种控制计算机的方式,和我们平时双击打开文件、关机、重启没有任何区别——闫学灿tip:[end] 内置数据类型: 类型 字节数 举例 byte整数 1 123 short整数 2 12345 int整数 4 123456789 long整数 8 1234567891011L float浮点数 4 1.2F double浮点数 8 1.2, 1.2D boolean 1 true or false char字符

    2024年02月05日
    浏览(54)
  • 【JAVASE】运算符

    ⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 计算机的最基本的用途之一就是执行数学运算,比如: 上述 + 和 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含

    2024年02月15日
    浏览(38)
  • 【javaSE】 运算符

    目录 什么是运算符 算术运算符 基本四则运算符:加减乘除模(+ - * / %) 注意事项 增量运算符 += -= *= %= 注意事项  自增/自减运算符 ++ -- 注意事项 关系运算符 注意事项 逻辑运算符 逻辑与 逻辑或 || 逻辑非 ! 短路求值 注意事项 位运算符 按位与 位或 | 注意事项  按位取反 ~ 注

    2024年02月14日
    浏览(58)
  • 【JavaSE语法】运算符

    计算机的最基本的用途之一就是执行数学运算,运算符即对操作数进行操作时的符号,不同运算符操作的含义不同 Java中运算符可分为以下: 算术运算符 (+ - * /)、 关系运算符 ( ==)、 逻辑运算符 、 位运算符 、 移位运算符 以及 条件运算符 等 1. 基本四则运算符:加减乘除模

    2024年02月07日
    浏览(42)
  • 【JAVA】你可知JAVA中的运算符|重温运算符

    作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏

    2024年02月15日
    浏览(45)
  • 【JavaSE】数据类型和运算符

    从这一篇我们开始Java的学习~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 Java第一个程序 字面常量 字面常量的分类 结合代码理解 类型转换 类型提升  byte与byte的运算 正确写法 字符串类型String int与String相互转换 int转String String转int 算

    2024年03月28日
    浏览(47)
  • Java中的运算符--短路运算

    JAVA中有两个短路运算,一个是短路与,一个是短路或。 所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数(可能是表达式)就不会执行。 短路与: 短路或: || 应用: 逻辑与、逻辑或都是自作向右计算。 两边同时为true,则为true。 有一方为fal

    2024年02月16日
    浏览(45)
  • JavaSE-02【类型转换和运算符】

    自动转换:将取值范围小的类型自动提升为取回范围大的类型 案例:Demo01_DataType 强制类型转换:将取值范围大的类型,强制转换成取值范围小的类型 转换格式: 案例: 注意事项 1、算术运算符----四则与取模运算 2、算术运算符----加号的多种用法 3、案例 3、算术运算符---

    2024年02月08日
    浏览(52)
  • Java中的运算符

      Java是一种强大的编程语言,其中运算符是编写代码时不可避免的一部分。运算符允许程序进行各种算术、逻辑和比较操作,以及数学函数。 算术运算符用于执行基本的算术运算,如加减乘除。下表列出了常见的算术运算符: 运算符 描述 + 加法 - 减法 * 乘法 / 除法 % 取模(

    2024年02月14日
    浏览(42)
  • javaSE___语法基础(关键字、标识符、数据类型、字符、字符串、运算符)

    一、的概述和使用 A:什么是 被Java语言赋予特定含义的单词 B:的特点 组成的字母全部小写 C:常见 public static void class等 D:的注意事项 goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对有特殊的颜色标记,非

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包