zoukankan      html  css  js  c++  java
  • 运算符

    一、算术运算符

    算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。

    Java 中常用的算术运算符:

     其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴

    例1:

    运行结果:

    例2:

    运行结果:

    一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!

    PS:% 用来求余数,也称为”取模运算符“

    例子:

    public class HelloWorld{
        public static void main(String[] args) {
            int age1=24;
            int age2=18;
            int age3=36;
            int age4=27;
            int sum=age1+age2+age3+age4;
            double avg=sum/4;
            int minus=Math.abs(age1-age2);
            int newAge=--age1;
            System.out.println("四个年龄的总和:"+sum);
            System.out.println("四个年龄的平均值:"+avg);
            System.out.println("age1 和 age2年龄差值:"+minus);
            System.out.println("age1自减后的年龄:"+newAge);

        }
    }

    二、赋值运算符

    赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。

    Java 支持的常用赋值运算符,如下表所示:

    例子:

    public class HelloWorld{
        public static void main(String[] args) {
            int one = 10 ;
            int two = 20 ;
            int three = 0 ;
            three=one+two;
            System.out.println("three = one + two ==> "+three);
            three+=one;
            System.out.println("three += one ==> "+three);
            three-=one;
            System.out.println("three -= one ==> "+three);
            three*=one;
            System.out.println("three *= one ==> "+three);
            three/=one;
            System.out.println("three /= one ==> "+three);
            three%=one;
            System.out.println("three %= one ==> "+three);
        }
    }

    三、比较运算符

    比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。

    Java 中常用的比较运算符如下表所示:

    注意哦:

    1、  > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

    2、  == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

    例子:

    public class HelloWorld{
        public static void main(String[] args) {
            int a=16;
            double b=9.5;
            String str1="hello";
            String str2="imooc";
            System.out.println("a等于b:" + (a  == b));
            System.out.println("a大于b:" + (a  > b));
            System.out.println("a小于等于b:" + (a <  b));
            System.out.println("str1等于str2:" + (str1.equals(str2)));
        }
    }

    ps: 1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
      2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
      3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
      4、==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。

    四、逻辑运算符

    逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:

    我们可以从“投票选举”的角度理解逻辑运算符:

    1、 :要求所有人都投票同意,才能通过某议题

    2、 :只要求一个人投票同意就可以通过某议题

    3、 :某人原本投票同意,通过非运算符,可以使其投票无效

    4、 异或:有且只能有一个人投票同意,才可以通过某议题

    当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。

    譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。

    同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!

    对比 逻辑运算符 中 & 和 && 的区别 、| 和 || 的区别
     * 逻辑或: || (短路)、|(不短路)
     * 逻辑与: && (短路)、&(不短路)

    例子:

    public class HelloWorld {
        public static void main(String[] args) {
            boolean a = true; // a同意
            boolean b = false; // b反对
            boolean c = false; // c反对
            boolean d = true; // d同意
            //a与b都必须要同意才能通过
            System.out.println((a && b) + " 未通过");
            //a与b必须有一人同意才能通过
            System.out.println((a || b) + " 通过");
            //a为反对才能通过
            System.out.println((!a) + " 未通过");
            //c与d中必须有且只有一人同意才能通过
            System.out.println((c ^ d) + " 通过");
        }
    }

    五、条件运算符

    条件运算符( ? : )也称为 “三元运算符”。

    语法形式:布尔表达式 ? 表达式1 :表达式2

    运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值

    例如:

    因为,表达式 8>5 的值为 true ,所以,返回: 8大于5

    例子:

    public class HelloWorld{
        public static void main(String[] args) {
            int score=68;
            String mark =(score>=60)?"及格":"不及格";
            System.out.println("考试成绩如何:"+mark);
        }
    }

  • 相关阅读:
    随笔2
    随笔
    关于updateElement接口
    随笔1
    本地访问正常,服务器访问乱码 记录
    Redis (error) NOAUTH Authentication required.解决方法
    tomcat启动很慢 停留在 At least one JAR was scanned for TLDs yet contained no TLDs.
    微信公众号消息回复
    微信公众号 报token验证失败
    idea中web.xml报错 Servlet should have a mapping
  • 原文地址:https://www.cnblogs.com/helloyuankun/p/12850359.html
Copyright © 2011-2022 走看看