记录生活中的点点滴滴

0%

day2

赋值运算符 =

支持链式赋值 a = b = 99

复合赋值运算符 (+= , -= , /= , *=)

short a = 10;

a += 2 与 a = a +2 相似,有区别的

a += 2 相当于a自增,不会改变本身变量数据类型

a = a +2 因为整型常量默认是int,所以a+2,自动提升数据类型为int,会报错

真正开发中,如果希望变量自增1:

方式1: i = i + 1

方式2: i += 1

方式3: i++ (推荐)

真正开发中,如果希望变量自增2:

方式1: i = i + 2

方式2: i += 2 (推荐)

比较运算符: == != > < >= <= instanceof

比较运算符的结果都是布尔类型(boolean)

逻辑运算符:运算符操作的是boolean型变量,运算结果也是boolean类型

&逻辑与运算符 && 短路与

|逻辑或运算符 || 短路或

!逻辑非运算符 ^ 逻辑异或

&和&&运算结果相同,如果符号左边是true,两个运算符都要执行右边的运算

​ 如果符号左边是false,&仍然要执行右边的,&&不在执

​ 行符号右边的

|和||运算结果相同, 如果符号左边是true, |仍然要执行右边的,||不在执

​ 行符号右边的

​ 如果符号左边是false,两个运算符都要执行右边的运算

位运算符:操作的都是数值型变量

<< >> >>>(无符号右移) & | ^ ~

<< 规律:在一定范围内,每左移一位,相当于数值*2,过犹不及(截断是让数值变的更小)

。>> 规律:在一定范围内,每右移一位,相当于数值/2,过犹不及。

。>>>:右移以后最高位拿0补

三元运算符:(条件表达式)?表达式1:表达式2

​ 表达式1和表达式2的数据类型要一致(满足自动类型提升也可以)

三元运算符一定可以转换为if else,反之不成立

顺序结构:

前向引用

分支结构:

if(条件表达式){

​ 执行代码块

}

if(条件表达式){

​ 执行代码块1

}

else{

​ 执行代码块2

}

if(条件表达式1){

​ 执行代码块1

}

else if(条件表达式2){

​ 执行代码块2

}

else{

​ 执行代码快n

}

1.else:结构可选的

2.如果两个条件表达式没有公共的交集,此时两个else if结构,可以交换结构

.如果两个条件表达式有公共的交集,要求范围小的条件表达式放在条件表达式的上面,

​ 此时两个条件表达式才有可能都被执行到

从键盘获取数据

  • 导包

    import java.util.Scanner;

  • 实例化Scanner

  • 调用相关方法,获取不同类型的变量

    next 字符串

    nextInt 整数

    nextDouble double

    nextFloat float

    nextBoolean 布尔类型

    Scanner类中没有从键盘获取char的方法

    用户输入的变量类型与调用的方法类型需要一致,否则,报inputMismatchException