Java基础 3. 运算符

旧街凉风 提交于 2020-01-25 10:46:56

Java基础 3. 运算符

目标

  • 掌握数据类型转换
  • 掌握算术运算符、赋值运算符
  • 掌握逻辑运算符
  • 掌握关系运算符、条件运算符

一、数据类型转换

//Demo1.java

public class Demo1 {
    public static void main(String[] args) {
        //按照数值非数值分类
        //数据类型:数值(整型int 浮点型float、double)
        //非数值(字符串String,字符char,布尔boolean(true、false))
        
        //按照基本引用数据类型
        //引用数据类型String 其他为基本
        
        int num1 = 10;
        //浮点数默认是double
        double num2 = 1.0;
        float num3 = 5.6f;
        System.out.println(num3);
        //当表达式中有一个是double类型时。整个结果是double
        //强制类型转换 double -> int
        //强制去掉小数部分9.8 -> 8
        //会造成精度丢失
        int num4 = num1 - (int)num2; 
        System.out.println(num4);
        
        //自动类型转换
        //int -> double
        num2 = 100;

    }
}

二、转换规则

自动类型转换规则

规则1. 如果一个操作数为double类型,则整个表达式类型提升为double类型

规则2. 满足自动类型转换的条件

  • 两种类型兼容

    • 数值类型(整型和浮点型)互相兼容
  • 目标类型大于源类型

    • 例如:double类型大于int类型

    强制类型转换

int num4 = num1 - (int)num2; 

三、赋值运算符

public class ChangeNumber {
    public static void main(String[] args) {
        int num1 = 1;
        int num2 = 2;
        System.out.println("before\tchange:"+ "num1 = "+num1+"\t num2 = "+num2);
        
        int temp = 0;
        temp = num1;
        num1 = num2;
        num2 = temp;
        
        System.out.println("after\tchange:"+ "num1 = "+num1+"\t num2 = "+num2);
    }

}

四、算术运算符

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

五、算术运算符综合应用

import java.util.Scanner;


public class num {
    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner inputScanner = new Scanner(System.in);
        System.out.println("Please input a number:");
    int no = inputScanner.nextInt();
    
    System.out.println("num is : "+no);
    System.out.println(no%10);
    System.out.println(no/10%10);
    System.out.println(no/100%10);

    }

}

六、 关系运算符

== != > < >= <=

七、 逻辑运算符

&& 与
|| 或
! 非
优先级别:!  >  &&   >   ||
public class luoji {
    public static void main(String[] args) {

/*      int x = 8;
        int y = 9;
        System.out.println((++x==y)&&(++x!=y));//true
        System.out.println(x);//10
*/  
        int x = 8;
        int y = 9;
        System.out.println((++x!=y)&&(++x==y));//false
        System.out.println(x);//9
    
        
    }

}

八、 条件运算符

三目运算符

 ? : 
import java.util.Scanner;


public class Tiaojian {
    public static void main(String[] args) {

        //判断一个数是否为偶数(能被2整除的数)
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个非零数字");
        int num = input.nextInt();
        
        String result = (num%2==0)?"偶数":"奇数";
        System.out.println(num + "是" + result);
    }

}

九、 运算符优先级

  • 单目运算符包括! ++ -- 优先级别 高
  • 优先级别最低的是赋值运算符
  • 可以通过()控制表达式的运算顺序,()优先级最高
  • 从右向左结合性的只有赋值运算符、三目运算符和单目运算符
  • 算术运算符>关系运算符>逻辑运算符
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!