Day03——Java基本运算符、分支结构、装箱拆箱

Day03

运算符

算数运算符

+、-、*、/、%、++、–

  • 取余——%

    0取余任何数均为0

    任何数取余0,会运行错误

  • 自增++、自减–

    单独使用时(一句语句中只有自增自减运算符),写前写后一样;

    被使用时,写前写后不一样,a++的值为a,++a的值为a+1

    int a = 5, b = 5;
    int c = a++; //先将a赋值给c,再将a+1
    int d = a; //此时a已经变成a+1,所以d=a+1
    int e = ++b; //先将b+1,再将b+1赋值给e
    int f = b; //f=b+1
    System.out.println(c);//5
    System.out.println(d);//6
    System.out.println(e);//6
    System.out.println(f);//6
    System.out.println(f++);//6
    System.out.println(++f);//8
    

关系运算符

关系运算的结果为Boolean型,成立为true,不成立为false

int a = 10;
int b = 20;
System.out.println(a > b);//false
System.out.println(a < b);//true
System.out.println(a == b);//false
System.out.println(a >= b);//false
System.out.println(a <= b);//true
System.out.println(a != b);//true
System.out.println("--------------------");
System.out.println("a % b = " + a % b);
System.out.println(a % b == 0);
System.out.println(a++ == 10);//true
System.out.println(a++ == 10);//false

逻辑运算符

&&、||、!

逻辑运算建立在关系运算之上,逻辑运算的结果也是boolean型

  • &&(与):同时满足才满足,注:短路与,若与的前半段语句已经是false,则发生短路,后半段语句将不再执行

    int a = 10;
    int b = 11;
    System.out.println((a > b) && (a++ < b)); // false && true,(a++ < b)不执行,a大小不变
    System.out.println(a); // 10
    System.out.println((a > b) || (a++ < b)); // false || true,(a++ < b)执行,a+1
    System.out.println(a); // 11
    
  • ||(或):满足一个则满足,

    [!TIP]

    注:短路或,若与的前半段语句已经是true,则发生短路,后半段语句将不再执行

    int a = 20;
    int b = 11;
    System.out.println((a > b) || (a++ < b)); // true || false,(a++ < b)不执行,a大小不变
    System.out.println(a); // 20
    System.out.println((a > b) && (a++ < b)); // true && false,(a++ < b)执行,a+1
    System.out.println(a); // 21
    
  • !(非):取反

赋值运算符

  1. 简单扩展运算符

    =

  2. 扩展赋值运算符

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

    在本身基础上做操作,扩展赋值会自动强转,计算完会将结果强转为本身的数据类型

    short s = 5;
    s = s + 10;//编译错误,s+10的结果为int,无法存入s(short),需要强转
    s += 10;//+=会自动强转,该语句等价于s=(short)(s+10)
    
  3. 字符串连接运算符

    不管什么类型的数据,只要用+与字符串相连,其结果均为字符串

    int a = 10;
    System.out.println("age=" + a);
    System.out.println("拼接后的数据类型为:"+ ("age=" + a).getClass().getName());
    
    //output
    age=10
    拼接后的数据类型为:java.lang.String
    
  4. 条件运算符(三目运算符)

    语法:

    boolean表达式  ?  表达式1  :  表达式2
    

    执行:

    • boolean表达式结果为true,整体结果为表达式1的值;
    • boolean表达式结果为false,整体结果为表达式2的值;

扩展——装箱、拆箱

基本数据类型对应的包装类

基本数据类型包装类
byteBtye
booleanBoolean
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble

装箱API

int a = 10;
Integer b = Integer.valueOf(a)

拆箱API

int c = b.intValue();
double d = b.doubleValue();

自动装箱:基本类型的数据处于需要对象的环境中时,会自动转为对象

Integer num = 10;//①自动装箱
Integer num1 = Integer.valueOf(10); //与①自动装箱等价

自动拆箱:对象自动转成基本数据类型,且不会显式调用intValue()、doubleValue()等转型方法

int num2 = num;//②自动拆箱
int num3 = num.intValue();//与②自动拆箱等价

[!IMPORTANT]

注:空指针异常

Integer b = null;
int b1 = b;//编译错误,空指针异常
System.out.println("b=" + b);//编译错误,空指针异常

分支结构

  • if…else…
    两条分支,要么满足条件,要么不满足条件

    if (...){
        ...
    } else {
        ...
    }
    
    满足if
    不满足else
    1
    条件
    3
    4
  • if…else if…
    多条分支,可以有多个else if,类似于switch,满足条件时走对应分支

    if (...){
        ...
    } else if (...){
        ...
    } else if (...){
        ...
    } ...
    
    else if条件1
    else if条件2
    else if条件3
    else if条件n
    0
    if条件
    2
    3
    4
    ...
  • switch…case…

    [!IMPORTANT]

    1. default是默认路径,当所有case均不满足条件时,走default
    2. 所有case中必须添加break语句,否则将会顺序执行所有case分支
    3. 目前判断条件只能对整数(也支持String和枚举),且只能判断相等

基本语法格式:

switch (...){
    case 1: break;
    case 2: break;
    case 3: break;
	...
    default: break;  
}
case 1
case 2
case 3
case n
2
3
4
switch条件
...

以枚举为条件

public class SwitchDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int colorNumber = scanner.nextInt();
        // 请在这里使用switch语句,实现根据colorNumber的值,输出对应的颜色
        Color color;
        switch (colorNumber){
            case 1:
                color = Color.RED;
                break;
            case 2:
                color = Color.GREEN;
                break;
            case 3:
                color = Color.BLUE;
                break;
            default:
                color = Color.UNKNOWN;
        }
        System.out.println("color = " + color);
        scanner.close();
    }
}
enum Color{
    RED, GREEN, BLUE, UNKNOWN;
}
  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值