运算符与方法的应用

运算符: 进行特定操作的符号,叫运算符。  例:+

表达式:运用运算符连接起来的式子叫表达式。 例:20 + 5,又例如:a + b

1.  算数运算符

算数运算符包括:  
+ 加法运算,字符串连接运算
减法运算
* 乘法运算
/ 除法运算
% 取模运算,两个数字相除取余数
++、—— 自增自减运算

 Java中,整数使用以上运算符,无论怎么计算,都不会得到小数。

package com.scxh.day01;

public class Demo01DataType {
    public static void  main(String[]args){
        int i = 1234;
        System.out.println(i/1000*1000); // 1000
    }
}

  ++运算,变量自己增长1,反之,--运算,变量自己减少1,用法与++一致。

注意事项:

  1.一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。

1.1.除法运算符  

例:

package com.scxh.day01;

import java.util.SortedMap;

public class Demo01Operator {
    public static void main(String[] args) {
        // 两个常量之间可以进行数学运算
        System.out.println(20 + 30);

        // 两个变量之间也可以进行数学运算
        int a = 20;
        int b = 30;
        System.out.println(a - b); // -10

        // 变量和常量之间可以混合使用
        System.out.println(a * 10); //200

        int x = 10;
        int y = 3;
        int result1 = x / y;
        System.out.println(result1); // 3
        int result2 = x%y;
        System.out.println(result2); // 余数,模,1
        //注:只有对于整数的除法来说,取模运算符才有余数的意义。
        
        double result3 = x + 2.5;
        System.out.println(result3); // 12.5
    }
}

 

1.2. 加法运算符

加号常见的三种方法:

1.对于数值来说,那就是加法。

2.对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。

  char类型字符,和int类型数字,之间的对照关系表:ASCII码表,Unicode

3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。

   任何数据类型和字符串进行连接的时候,结果都会变成字符串

 

        //字符串类型的变量基本使用
        //数据类型 变量名 = 数据值;
        String str1 = "Hello";
        System.out.println(str1);  //Hello

        System.out.println("Hello" + "World"); //HelloWorld

        String str2 = "Java";
        // String + int --> String
        System.out.println(str2 + 20); // Java20

        //优先级问题
        // String + int + int
        // String       + int
        // String
        System.out.println(str2 + 20 + 30); //Java2030

        // 改变优先级
        System.out.println(str2 + 20 + 30); //Java2030

        System.out.println(str2 + (20 + 30)); //Java50
        // 乘除优先于加减,小括号优先于一切

 

2.赋值运算符

赋值运算符:=  、+=

a = 10   将10赋值给变量a

注意:拓展的+=赋值运算符底层隐含了强制类型转换,所以以后遇到A =  A+20可直接写成A += 20

 

 例:

        //把10赋值给int类型的变量A
        int A = 10;
        System.out.println("A:" + A);
        // += 把左边和右边的数据做加法操作,结果赋值给左边
        A += 20;
        System.out.println("A:" + A);

 

3.自增自减运算

自增运算符:++

自减运算符:--

含义:让一个变量涨或者降一个数字1

使用格式:写在变量名之前,或者写在变量名之后。 例:++num,num++

使用方式:

    1.单独使用:不和其他任何操作混合,自己独立成为一个步骤。

    2.混合使用:不和其他操作混合,例如与赋值混合,或者与打印操作混合,等。

使用区别:

    1.单独使用的时候,num++和++num没有任何区别,也就是:++num;和num++;是一样的。

 

4.关系运算符

 

注意:关系运算符输出的值都是boolean类型,要么是true,要么是false,千万不要把 "==" 误写成 "=" 。 

例:

package com.scxh.day01;
    /*
    关系运算符
     */
public class Demo02Operator {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 10;

        //  ==
        System.out.println("判断i和j是否相等:" + (i == j));
        System.out.println("判断i和k是否相等:" + (i == k));
        System.out.println("----------------------------------------");

        // 如果不小心把==写成了=,那么就会把j的值赋值给i,并且输出i的值
        System.out.println("i = j 的值:" + (i = j));
        System.out.println("----------------------------------------");

        // !=
        System.out.println("判断i和j是否不相等:" + (i != j));
        System.out.println("判断i和j是否不相等:" + (i != k));
        System.out.println("----------------------------------------");

        // >
        System.out.println("判断i是否大于j:" + (i > j));
        System.out.println("判断i是否大于k:" + (i > k));
        System.out.println("----------------------------------------");

        // >=
        System.out.println("判断i是否大于等于j:" + (i >= j));
        System.out.println("判断i是否大于等于k:" + (i >= k));
        System.out.println("----------------------------------------");

        // <
        System.out.println("判断i是否小于j:" + (i < j));
        System.out.println("判断i是否小于k:" + (i < k));
        System.out.println("----------------------------------------");

        // <=
        System.out.println("判断i是否小于等于j:" + (i <= j));
        System.out.println("判断i是否小于等于k:" + (i <= k));


    }
}

 

5. 逻辑运算符

在数学中,一个数据x,大于3,小于6,我们可以这样来表示:3<x<6。

  • 拆解为:x > 3 x < 6 
  • 合并后:x > 3 && x < 6 

 &&其实就是一个逻辑运算符

我们可与这样说,逻辑运算符,就是用来连接关系表达式的运算符

当然,逻辑运算符也可以直接连接布尔类型的常量或变量。

 

 例:

package com.scxh.day01;
/*
    逻辑运算符
*/
public class Demo03Operator {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 30;

        //& (逻辑与) 有false则false
        System.out.println((i > j) & (i > k)); //false & false
        System.out.println((i < j) & (i > k)); //true & false
        System.out.println((i > j) & (i < k)); //false & true
        System.out.println((i < j) & (i < k)); //true & true
        System.out.println("---------------");

        //| (逻辑或)  有true则true
        System.out.println((i > j) | (i > k)); //false | false
        System.out.println((i < j) | (i > k)); //true | false
        System.out.println((i > j) | (i < k)); //false | true
        System.out.println((i < j) | (i < k)); //true | true
        System.out.println("---------------");

        //^ (逻辑异或) 相同为false,不同为true
        System.out.println((i > j) ^ (i > k)); //false ^ false
        System.out.println((i < j) ^ (i > k)); //true ^ false
        System.out.println((i > j) ^ (i < k)); //false ^ true
        System.out.println((i < j) ^ (i < k)); //true ^ true
        System.out.println("---------------");

        //! (逻辑非)
        System.out.println((i > j)); //false
        System.out.println(!(i > j)); //!false
        System.out.println(!!(i > j)); //!!false
        System.out.println(!!!(i > j)); //!!!false


    }
}

5.2 短路逻辑运算符

注意事项:

  •  逻辑与&,无论左边真假,右边都要执行。

   短路与&&,如果左边为真,右边执行;如果左边为假,则右边不执行

  •  逻辑或|,无论左边真假,右边都要执行。

   短路或||,如果左边为假,右边执行;如果左边为真,则右边不执行

最常用的逻辑运算符: &&,||,!

6.三元运算符

6.1三元运算符

  • 格式:关系表达式?表达式1表达式2;
  • 范例:a > b ? a : b;

  计算规则:

       首先计算关系表达式的值

       如果值为true表达式1的值就是运算结果

       如果值为false表达式2的值就是运算结果

package com.scxh.day01;

public class Demo04Operator {
    public static void main(String[] args) {
        //定义两个变量
        int a = 10;
        int b = 20;

        //获取两个数据中的较大值
        int max = a > b ? a: b;

        //输出结果
        System.out.println("max:" + max); //20

    }
}

 

posted @ 2021-03-10 22:08  麟轩  阅读(69)  评论(0编辑  收藏  举报