首页 > 编程语言 >Java运算符

Java运算符

时间:2023-12-08 11:11:43浏览次数:31  
标签:Java ++ System 运算符 println true out

1.运算符

1.1 算术运算符

算术运算符是对数值型的变量进行运算

public class Operator {
    public static void main(String args[]){
        System.out.println(10/4); //2
        System.out.println(10.0/4); //2.5
        double d=10/4;
        System.out.println(d); //2.0

        //%取模,取余,其本质,可以看一个公式 a % b=a-a/b*b
        System.out.println(-10%3); //-10-(-10)/3*3=-10+9=-1
        System.out.println(10%-3); //10-10/(-3)*(-3)=10-9=1
        System.out.println(-10%-3); //(-10)-(-10)/(-3)*(-3)=-10+9=-1
        System.out.println(10%3); //1

        //++的使用
        int i=10;
        i++;//自增,等价于i=i+1;=>i=11
        ++i;//自增,等价于i=i+1;=>i=12
        System.out.println("i="+i);
        /*
        * 作为表达式使用
        * 前++:++i 先自增后赋值
        * 后++:i++ 先赋值后自增
        * */

        int j=8;
        int n=8;
        int k=++j;//等价于 j=j+1;k=j;
        int m=n++;//等价于 m=n;n=n+1;
        System.out.println("k="+k+"\tj="+j); //k=9 j=9
        System.out.println("m="+m+"\tn="+n); //m=8 n=9

    }
}

说明:

  • 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分,例如:10/3 结果是3
  • 当对一个数取余时,可以等价于 a%b=a-a/b*b,这样我们可以看到取余的一个本质运算
  • 当自增独立使用时,不管是++i,还是i++;都一样的,等价
  • 当自增当作一个表达式使用时,j=++i 等价于 i=i+1,j=i(先自增,再赋值)
  • 当自增当作一个表达式使用时,j=i++ 等价于 j=i i=i+1(先赋值,再自增)

思考:

int i=1;

i=i++;

结果是多少,为什么?

int i;

i=++i;

结果是多少,为什么?

public class Operator02 {
    public static void main(String[] args) {
        int i=1;
        i=i++;//规则使用临时变量:(1)temp=i (2)i=i+1 i=temp
        System.out.println(i); //1

        int j=1;
        j=++j; //规则使用临时变量:(1)j=j+1;(2)temp=j;(3)j=temp
        System.out.println(j); //2
    }
}

1.2 关系运算符

关系运算符的结果都是boolean型,也就是要么是tru,要么是false

关系表达式 经常用在if结构中或循环结构的条件中

public class RelationalOperator {
    public static void main(String[] args) {
        int a=9;
        int b=8;
        System.out.println(a>b);  //true
        System.out.println(a>=b); //true
        System.out.println(a<=b); //false
        System.out.println(a<b);  //false
        System.out.println(a==b); //false
        System.out.println(a!=b); //true
        boolean flag=a>b;
        System.out.println("flag="+flag); //true
    }
}

 1.3 逻辑运算符

用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值

逻辑与&,逻辑或|,逻辑异或^

短路与&&,短路或||,取反!

逻辑运算规则说明:

  • a&b:逻辑与,规则:当a和b同时为true,则结果为true,否则为false
  • a&&b:短路与,规则:当a和b同时为true,则结果为true,否则为false,如果a为flase,则不用判断b。效率高
  • a|b:逻辑或,规则:当a和b,有一个为true,则结果为true,否则为false
  • a||b:短路或,当a和b,有一个为true,则结果为true,否则为false,如果a为true,则不用判断b。效率高
  • !a:取反,或者非运算。当a为true,则结果为false,当a为false时,结果为true
  • a^b:叫做逻辑异或,当a和b不同时,则结果为true,否则为false
public class InverseOperator {
    public static void main(String[] args) {
        int x=5;
        int y=5;
        if(x++==6 & ++y==6){
            x=11;
        }
        System.out.println("x="+x+",y="+y); //x=6,y=6
        x=5;
        y=5;
        if(x++==5 |++y==5){
            x=11;
        }
        System.out.println("x="+x+",y="+y); //x=11,y=6

        x=5;
        y=5;
        if(x++==6 &&++y==6){
            x=11;
        }
        System.out.println("x="+x+",y="+y);//x=6,y=5

        x=5;
        y=5;
        if(x++==6 || ++y==6){
            x=11;
        }
        System.out.println("x="+x+",y="+y);//x=11,y=6

        boolean flag=true;
        System.out.println(!flag); //false

        x=5;
        y=5;
        if(x++==6 ^ ++y==6){
            x=11;
        }
        System.out.println("x="+x+",y="+y); //x=11,y=6

        System.out.println(true ^ true); //false
        System.out.println(false ^ true); //true
        System.out.println(true ^ false); //ture
        System.out.println(false ^ false); //false
    }
}

1.4 赋值运算符

 =,+=,-=,*=,/+,%=

a+=b;等价于 a=a+b;

1.5 三元运算符

语法:条件表达式?表达式1:表达式2

运算规则:

  1. 如果条件表达式为ture,运算后的结果是表达式1
  2. 如果条件表达式为flase,运算后的结果是表达式2
public class TernaryOperator {
    //三目运算符使用
    public static void main(String[] args) {
        int a=10;
        int b=99;
        int result=a>b?a++:b--;
        System.out.println("result="+result); //99
        System.out.println("a="+a); //10
        System.out.println("b="+b); //98
    }
}

1.6 运算符的优先级

运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序

只有单目运算符,赋值运算符是从右向左运算的

标签:Java,++,System,运算符,println,true,out
From: https://www.cnblogs.com/lgs-tech/p/17884734.html

相关文章

  • java 正则表达式 用法
    在一个复杂的字符串中,使用正则表达式来取其中某个值importjava.util.regex.*;//正则表达式引用//复杂的字符串Stringinput="{\"pbxToken\":\"1ja930jsdlij912h94hk5l35poeweer\"}"+"{\"LS_CallStatus_Event_Type\":\"\",\"callId......
  • JavaWeb - Day03 - Ajax、前端工程化、Element
    01.Ajax-介绍Ajax概念:AsynchronousJavaScriptAndXML,异步的JavaScript和XML。作用:数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用的校验等等......
  • C-04.运算符(基础)
    运算符1.算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行+,-,*,/,%运算。1.1加法和减法运算符mysql>SELECT100,100+0,100-0,100+50,100+50-30,100+35.5,100-35.5->FROMdual;+-----+---------+--------......
  • Java第五课_函数重载递归和初识数组
    1.函数重载//关键字:public,static等//保留字:关键字的预备役var,goto//jdk11开始,还有JS里var升级为关键字:var变量名=初始值;//重载/overload:在同一个类中,允许函数重名,但是他们的参数列表必须不同.......
  • 前端学习-JavaScript学习-js基础-API02
    学习视频:黑马程序员视频链接事件监听三要素:事件源、事件类型、事件处理程序随机点名案例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"&......
  • Java 读取EXCEL表格中的数据,将数据转为SQL语句
    **[参考文档](https://blog.csdn.net/wl_Honest/article/details/83985751?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-83985751-blog-81103171.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.1&utm_relevant_index=3)......
  • Java登陆第二十天——HTML常用标签
    文本标签文本常用的HTML标签:标签名标签描述<h1></h1>标题标签<h6></h6>标题标签<p></p>段落标签<hr>换行标签<br>换行标签标签栗子:<!DOCTYPEhtml><htmllang="en"><head><metacharset=&quo......
  • 4 种方法,帮你快速新建 Java 项目!
    大家好,我是鱼皮。今天给大家分享常用的快速初始化Java项目的几种方法。比较全面,有一些方法你可能并不知道,但如果都掌握的话,基本上够用一辈子了哈哈。如何快速初始化Java项目?1、使用开发工具Java开发者最常用的开发工具当属JetBrainsIDEA了!IDEA不仅功能完善、插件丰富,而且......
  • Java File类详解(下)练习部分
    练习第一题需求:在当前模块下的aaa文件夹中创建一个a.txt文件importjava.io.File;importjava.io.IOException;publicclassFileExer01{publicstaticvoidmain(String[]args)throwsIOException{Filef1=newFile("AllInOne\\aaa");f1.mkdirs();Filesrc=ne......
  • Java编写单元测试用例
    Java编写单元测试用例01简介Java中可以使用多个测试框架来执行单元测试,其中最流行的测试框架之一是JUnit。下面是一个简单的示例,说明如何使用JUnit框架编写和执行单元测试:02一、JUnit包导入importorg.junit.*;03二、创建测试类这个类需要使用“@RunWith’和@Suite”注......