首页 > 编程语言 >Java基础—运算符篇(从0到1完整详解,附有代码+案例)

Java基础—运算符篇(从0到1完整详解,附有代码+案例)

时间:2024-09-09 10:20:34浏览次数:15  
标签:Java System 运算符 详解 println false true out

文章目录

运算符

分类:

赋值运算符:=

算术运算符: + - * / % ++ – += -= /= %=

关系运算符:> < == >= <= != (也叫 比较运算符)

逻辑运算符:&& | | !

三元运算符: __ ?__ : __;

2.1.算术运算符

2.1.1基本算数运算

符号 作用 说明
+
-
/ 取结果的商
% 取模、取余 取结果的余数
package code02.demo01;
public class test01 {
    public static void main(String[] args) {
        System.out.println(3 + 2);//5
        System.out.println(5 - 1);//4
        //* (shift + 数字8)
        System.out.println(7 * 9);//63
      
     //如果在计算的时候有小数参与
    //在代码中,如果有小数参与计算,结果有可能不精确的。
    System.out.println(1.1 + 1.1);//2.2
    System.out.println(1.1 + 1.01);//2.1100000000000003
    System.out.println(1.1 - 1.01);
    System.out.println(1.1 * 1.01);
      
    //====================================
      
      //1.整数参与计算,结果只能得到整数
    //2.小数参与计算,结果有可能是不精确的,如果我们需要精确计算,那么需要用到后面的知识点。
    public static void main(String[] args) {
        //除法
        System.out.println(10 / 2);//5
        System.out.println(10 / 3);//3
        System.out.println(10.0 / 3);//3.3333333333333335
      
      
    //取模,取余。实际上也是做除法运算,只不过得到的是余数而已。
    System.out.println(10 % 2);//0
    System.out.println(10 % 3);//1
    }
}

2.1.2 复合算数运算

符号 作用 说明
= 赋值 int a = 10 将10赋值给变量啊
+= 加后赋值 a+=b;将a+b的值给a
-= 减后赋值 a-=b;将a-b的值给a
*= 乘后赋值 a*=b;将a*b的值给a
/= 除后赋值 a/=b;将a÷b的商给a
%= 取余后赋值 a%=b;将a÷b的余数给a

2.1.3 类型转换

取值范围由小到大为:
byte < short < int < long < float < double

隐式转换:

  • (自动类型提升)取值范围小的转成取值范围大的

  • byte short char 三种类型的数据在运算的时候,会直接先提升为int然后在运算

    int i =10;
    long n =100L;
    double d = 20.0;
     double result = i+n+d;//i+n自动转成long类型,然后long类型与d运算转成double类型
    ===========================================
      byte b = 10;
    	short s = 20;
    	long n = 100L;
    // b和S先自动转成int,然后运算结果与long运算得long类型
    	long result = b+s+n;
    
    

强制转换:

  • 取值范围大的转成取值范围小的;

    public class demo3 {
        public static void main(String[] args) {
            byte b1 = 10;
            byte b2 = 20;
            //现在我们要强转的是谁?
            //b1 + b2计算之后的结果。
            // (byte)b1 + b2 强转的是b1,并不是最终的结果
            byte result = (byte)(b1 + b2);
            System.out.println(result);//30
        }
    }
    

2.1.4 “+”的三种情况

数字相加

  • 数字进行运算时,数据类型不一样不能运算,需要转成一样的 才能运算。

字符串相加

  • 当“+”操作中出现字符串时,此时+ 是字符串连接符,而不是运算符

    "123"+123    //"123123"
     1+2+"你好"   // "3你好"
    

2.2 自增自减运算符

符号 作用 说明
++ 变量值加1
变量值减1

注意事项

public class Test05 {
    public static void main(String[] args) {
       int a = 10;
       int b = a++; //先用后加
        System.out.println(a);// 11
        System.out.println(b);//  10
    }

}


====================================================
  public class Test05 {
    public static void main(String[] args) {
       int a = 10;
       int b = ++a; // 先加后用
        System.out.println(a);// 11
        System.out.println(b);//  11
    }

}
public class Test05 {
    public static void main(String[] args) {
        int x = 10;
        //后++:先用后加
        //先把x变量中的值拿出来用,赋值给y,然后再进行自增。
        //赋值给y的值是自增前的。
        int y = x++;// x = 11  y = 10
        //先++:先加后用
        //先把x进行自增,然后把自增后的结果赋值给左边的变量
        //先把x自增,变成12,然后再把自增之后的12赋值给z
        int z = ++x;//x = 12 z = 12
        System.out.println("x:" + x);//12
        System.out.println("y:" + y);//10
        System.out.println("z:" + z);//12
    }

}

2.3 赋值运算符

符号 作用 说明
= 赋值 int a = 10 将10赋值给变量啊
+= 加后赋值 a+=b;将a+b的值给a
-= 减后赋值 a-=b;将a-b的值给a
*= 乘后赋值 a*=b;将a*b的值给a
/= 除后赋值 a/=b;将a÷b的商给a
%= 取余后赋值 a%=b;将a÷b的余数给a

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

2.4 关系运算符

  • 关系运算符也称比较运算符

  • 关系运算符的结果都是boolean类型,要么是true 要么是 false

运算符 含义 范例 结果
== 等于 5==6 false
!= 不等于 5!=6 true
> 大于 5>6 false
< 小于 5<6 true
>= 大于等于 5>=6 false
<= 小于等于 5<=6 true

2.5 逻辑运算符

符号 作用 说明
& 逻辑与(且) 并且,两边都为真,结果才是真 两边都要满足
| 逻辑或 或者,两边都为假,结果才为假 两边满足一个
^ 逻辑异或 相同为false, 不同为true
! 逻辑非 取反
        // & 并且
        // 两边都为真,结果才是真
        System.out.println(true & true);//true
        System.out.println(true & false);//false
        System.out.println(false & false);//false
        System.out.println(false & true);//false
        
        //  |  或者
        //两边都是假,结果才为假
        System.out.println(false |false);//false
        System.out.println(false | true);// true
        System.out.println(true | false);//true
        System.out.println(true | true);//ture

        // ^ 异或
        // 相同为false ,不同为true
        System.out.println(false ^ false);//false
        System.out.println(true ^ true);//false
        System.out.println(true ^ false);//true
        System.out.println(false ^ true);//true

        // ! 逻辑非 ,取反
        System.out.println(!true);//false
        System.out.println(!false);//true

2.6短路逻辑运算符

符号 作用 说明
&& 短路与 结果和&相同,但是有短路效果
|| 短路或 结果和 | 相同,但是有短路效果
  • & |无论左边true 还是false ,右边都执行
  • && ||如果左边能确定整个表达式的结果,右边不执行
  • &&左边为false,右边不管真假,整个表达式的结果一定是false,即右边不会执行
  • ||左边为true 右边不管真假,整个表达式的结果一定是true,即右边不会执行
        // && 短路与, 运行结果跟单个&一样
        //两边结果都为真,结果才为真
        System.out.println(true && true);//true
        System.out.println(false && true);//false
        System.out.println(true && false);//false
        System.out.println(false && false);//false

        // || 短路或 ,运行结果和单个 | 一样
        // 两边结果都为假 结果才是假
        System.out.println(false||false);//false
        System.out.println(false|| true);// true
        System.out.println(true||false);//true
        System.out.println(true||true);//ture

        // 短路逻辑运算符具有短路效果,
     //可以理解为:当左边的表达式能最终确定结果,右边的表达式就不在执行
        int a = 10;
        int b = 10;
        boolean res = ++a < 5 && ++b<5;
        System.out.println(res);//false
        System.out.println(a);//11
        System.out.println(b);//10;如果&&改为& ,b输出为11



2.7三元运算符

格式:关系表达式?表达式1:表达式2;

  • 首先计算关系表达式的值,
  • 如果值为true,表达式1的值就是运算结果
  • 如果值为false,表达式2 的值就是运算结果
 // 输出两个数的最大值
        int number = 10;
        int number2 = 20;
        int max = number>number2?number:number2;
        System.out.println(max);
-----------------------------------------------------------
       // 输出三个数的最大值
        int a = 165;
        int b = 212;
        int c = 150;
        // temp为临时变量  ctrl+alt+l:自动格式代码
        int temp = a > b ? a : b;
        int res = temp > c ? temp : c;
        System.out.println(res);

2.8运算的优先级

()小括号优先所有

标签:Java,System,运算符,详解,println,false,true,out
From: https://blog.csdn.net/weixin_54555405/article/details/142040600

相关文章

  • Python 错误 AttributeError 解析,实际错误实例详解
    文章目录前言Python错误AttributeError:_csv.readerobjectHasNoAttributeNext修复Python中的AttributeError:'_csv.reader'objecthasnoattribute'next'错误Python错误AttributeError:‘_io.TextIOWrapper‘objectHasNoAttribute‘Sp......
  • exit与_exit详解,并于进程间的关系
    文章目录1.`exit`函数定义语法参数特点示例2.`_exit`函数定义语法参数特点示例3.主要区别4.与进程间的关系进程的创建与终止示例结论1.exit函数定义exit是一个标准库函数,定义在<stdlib.h>头文件中。它用于正常或异常地终止程序,并执行一些清理操作。......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    springboot电影推荐网站摘 要随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的电影推荐网站;电影推荐网站的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本电影推荐网站是针对目前电影推荐网站的实际需求,从......
  • Java基础之方法 | 方法概述 | 方法格式 | 方法重载 | 方法的参数传递
    目录什么是方法方法基本使用定义方法格式方法案例定义方法的两个明确案例一案例二案例三方法小结定义方法注意事项调用方法三种形式方法重载方法重载概述方法重载案例案例一案例二案例三方法的参数传递方法参数传递基本类型方法参数传递引用类型什么......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    SSM?中小型药店信息管理系统摘要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论......
  • 审批流程超简单实现(Java版)
    工作流审批功能是办公OA系统核心能力,如果让你设计一个工作流审批系统,你会吗?千万不要小瞧OA内部系统的复杂性,大家可以头脑风暴思考一下实现方案。要明白工作流审批涉及多个用户的任务流转,多个流程分支跳转,虽然是办公内部系统,但是这个系统并不简单如果没有强大的工作流引擎,难以高效扩......
  • Java基础 | 数组 | 一维数组 | 二维数组 | 数组初始化 | 索引
    目录一维数组什么是数组数组定义格式格式一格式二数组初始化数组动态初始化什么是动态初始化动态初始化格式动态初始化格式详解等号左边等号右边数组静态初始化什么是静态初始化静态初始化格式完整版格式简化版格式示例代码数组元素访问什么是索引访问数......
  • ADB安装及使用详解(非常详细)从零基础入门到精通,看完这一篇就够了
    文章目录一、ADB简介1、什么是adb2、为什么要用adb二、准备工具1、下载adb2、配置环境变量3、连接4、电脑打开cmd窗口三、ADB命令详解1、基本命令2、权限命令3、建立连接4、apk操作指令5、文件操作指令6、日志操作指令7、系统操作指令题外话==如何入门学习网络......
  • Java毕设项目II基于Spring Boot的在线远程考试系统设计与实现
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着信息技术的飞速发展和教育模式的不断......
  • 【JavaScript系列八】—讲述JS学习历程的知识分享!
    前言本篇主要讲述JS中较为重要的一环,函数的用法,深拷贝和浅拷贝的概念和区别,闭包和递归,包括一些案例:例如递归实现斐波那契数列,求阶乘等等一、关于函数定义函数的方式function关键字函数表达式(匿名函数)varfn=function(){}newfunction()函数的调用及其this指向普通函数—......