java运算符

1.运算符的介绍

        运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

 2.算数运算符

        1.介绍

                1.算数运算符是对数据变量进行操作的符号,java程序中用的最多的运算符

        2.运算符预览

                

         3.演示案例,重点讲解%、/、++

               1.除

public class Homework02 {
    public static void main(String[] args) {
        System.out.println(10/4);
        /*
        从数学中得知明明得到的值为2.5为什么是2呢?
        因为我们的10和4都是int整形,不能存放小数,所以打印的时候才是2
         */
        System.out.println(10.0/4);
        /*
        当我们将一个变量提升为double的时候输出的就是2.5了
         */
    }
}

结果

         2.取模

public class Order {
    public static void main(String[] args) {
        // % 取模 ,取余
        /*
        在 % 的本质 看一个公式 !!!!a % b = a - a / b * b
                */
        // -10 % 3 => -10 - (-10) / 3 * 3 = -10 + 9 = -1
        // 10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
        // -10 % -3 = (-10) - (-10) / (-3) * (-3) = -1

        System.out.println("(-10)%3的结果是=" + -10 % 3);
        System.out.println("10%(-3)的结果是=" + -10 % 3);
        System.out.println("(-10)%(-3)的结果是=" + -10 % 3);
    }
}

         3.++、–

public class Order {
    public static void main(String[] args) {
       /*
       前置++和前置--,都是先运算在赋值,我们看案例
        */
        int i = 5;
        if (++i == 6){
            System.out.println("进来了");
        }else{
            System.out.println("没进去");
        }
        //当我们将++i换成i++再看案例
        int p= 5;
        if (p++ == 6){
            System.out.println("进来了");
        }else{
            System.out.println("没进去");
        }
    }

    结果 ,很明显的看到当是前置++的时候就会先++在赋值,当是后置在++++的时候就会先赋值

2.关系运算符

         1.介绍

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

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

                

 3.逻辑运算符

        

 

                    1.短路与和异或与的区别

public class Order {
    public static void main(String[] args){
      /*
      逻辑与和短路与的区别
      相同点:两个都为真的时候才为真,一个为假都为假
      不同点:
                1.逻辑与当第一个条件判断为真的时候还会继续往下判断
                2.短路与当第一个条件判断为假的时候就不会往下判断了
       */
        //看例题
        int num1 = 5;
        int num2 = 4;
        if(num1++>6 & ++num2>5){
            System.out.println("进去了");
            System.out.println("num1="+num1+"  num2="+num2);
        }
        //能够看到当没有满足条件,所以没有进去判断,然后第一个判断都为false了逻辑与还是继续往下进行判断
        System.out.println("没有进去");
        System.out.println("num1="+num1+"  num2="+num2);
    }
}

                逻辑与结果

                         短路与

public class Order {
    public static void main(String[] args){
      /*
      逻辑与和短路与的区别
      相同点:两个都为真的时候才为真,一个为假都为假
      不同点:
                1.逻辑与当第一个条件判断为真的时候还会继续往下判断
                2.短路与当第一个条件判断为假的时候就不会往下判断了
       */
        //看例题
        int num1 = 5;
        int num2 = 4;
        if(num1++>6 && ++num2>5){
            System.out.println("进去了");
            System.out.println("num1="+num1+"  num2="+num2);
        }
        //能够看到当没有满足条件,直接就跳出判断没有继续往下判断了
        System.out.println("没有进去");
        System.out.println("num1="+num1+"  num2="+num2);
    }
}

                        结果短路与

                            1.&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果false,效率高

                             2. 逻辑与:不管第一个条件是否为false,第二个条件判断都会执行

                             3.逻辑或和短路或原理同上

4.赋值运算符 

 注:除了第一个是赋值运算符,其他都死拓展赋值运算符!!

很重要的语法机制:

使用扩展赋值运算符的时候,永远都不会改变运算结果类型

public class Order {
    public static void main(String[] args){
      int i = 4;
      i+=1; 
     //---> = i = i+1
      int n = 6;
      n/=2;  //--->n = n/2
      //复合赋值运算符会进行类型转换
      byte b = 3;
      b += 2; // 等价 b = (byte)(b + 2);
      b++; // b = (byte)

    }
}

5.三元运算符

        基本语法 条件表达式 ? 表达式 1: 表达式 2; 运算规则:

                                1. 如果条件表达式为 true,运算后的结果是表达式 1;

                                2. 如果条件表达式为 false,运算后的结果是表达式 2

public class TernaryOperator {
//编写一个 main 方法
    public static void main(String[] args) {
        int a = 10;
        int b = 99;
        // 解读
        // 1. a > b 为 false
        // 2. 返回 b--, 先返回 b 的值,然后在 b-1
        // 3. 返回的结果是 99
        int result = a > b ? a++ : b--;
        System.out.println("result=" + result);
        System.out.println("a=" + a);
        System.out.println("b=" + b);
    }
}

使用细节 

表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换) 2) 三元运算符可以转成 if–else 语


版权声明:本文为weixin_48735871原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。