4.各类运算符if,switch控制语句

算术运算符

运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数。

算术运算符最常见的操作就是将操作数参与数学计算

在这里插入图片描述

  • 加法运算

正号(可以省略)

字符串连接符:当+左右两边如果有一个字符串,都作为字符串的连接符使用
把内容拼接成为一整个字符串

  • 负号,不能省略

减法运算

* 乘号

/ 除号

% 取模|取余|模以

当参与运算的两个操作数,第一个操作数小于第二个操作数的时候,结果就是第一个操作数

算数运算符++,–的使用

++就是自身+1 |自增 --自身-1 i+±-> i=i+1;

操作自己:值的改变只影响自己的结果

++放在操作数的前面后者后面都是自身+1

–放在操作数的前面后者后面都是自身-1

操作别人|参与运算

++|–放在操作数的前面,先自身+1|-1,再参与运算

++|–放在操作数的后面,先参与运算,再自身+1|-1

赋值运算符

在这里插入图片描述

基本赋值运算符 =:

双目运算符

在java中唯一一个自右向左的运算的运算符

扩展赋值运算符

优点:提高执行效率

可以自动做强制类型转换

缺点:不直观

推荐使用拓展赋值运算符

比较运算符

在这里插入图片描述

>< >= <= 只能用来比较基本数据类型 byte short int long float
double char.

== !=可以用来比较基本数据类型,可以用来比较引用数据类型

比较运算符最终的结果为boolean类型的值为true/false

逻辑运算符

在这里插入图片描述

& : 如果有一个是假就为假,两个都为真才是真

| : 如果有一个为真就是真,两个都为假才是假

! : 去反 !true->false !false->true

^ : 两个相同为false,不同为true

&&

||:逻辑与&,|一样,但是有短路的作用,第一个操作数的值就能够决定最终的结果了,第二个操作数不再运行

三元运算符

公式:

条件表达式? 值1 : 值2;

条件表达式是一个值为boolean类型的表达式

执行流程:

1.计算条件表达式的结果

2.如果结果true,最终的结果为值1

3.如果结果为false,最终的结果为值2

在这里插入图片描述
运算符优先级
============

在这里插入图片描述

位运算符

所有的位运算符在运算时会先转成二进制,再进行运算,得到的结果转为十进制

& :
把两边二进制的数,同一位数的两个数比较,如果一个为0就是0,两个都为1才是1

| :
把两边二进制的数,同一位数的两个数比较,如果一个为1就是1,两个都是0才是0

^ : 把两边二进制的数,同一位数的两个数比较,如果两个相等为0,不等为1

位移运算符

>> 右移
把左边的操作数转为二进制,想象右侧有一个分水线,向右移动第二个操作数位,保留左右留在分水线左侧的二进制数,再转为十进制

<< 左移
把左边的操作数转为二进制,想象右侧有一个分水线,向右移动第二个操作数位,空缺位置补零,最终转为十进制

右移/2的几次方 左移*2的几次方

9>>2 9/2^2

9<<2 9*2^2

引用类型

通过import java.util.Scanner/Random 来导包引用

Scanner

Scanner类是一个引用数据类型

基本数据类型:

int a=5;

引用数据类型:

1)创建一个引用数据类型的变量|引用

引用数据类型 变量名=new 引用数据类型();

eg:创建一个Scanner类型的变量|引用

Scanner sc=new Scanner(System.in);

2)如何使用功能:

引用.功能名字();

Scanner类型:接受键盘输入

1)导包 告诉Scanner类所在的位置

使用import关键字导包 java.util.Scanner

位置:类的上面

2)使用公式创建Scanner类型的引用

3)使用功能

接受用户输入的int类型的数据

引用.nextInt();

接受用户输入的byte类型的数据

引用.nextByte();

接受用户输入的short类型的数据

引用.nextShort();

接受用户输入的long类型的数据

引用.nextLong();

接受用户输入的double类型的数据

引用.nextDouble();

接受用户输入的String类型的数据

引用.next();

从有效字符开始,直到遇到空格|tab停止接收,功能遇到enter结束

接收用户输入的String类型的数据,一整行

引用.nextLine(); 遇到enter就结束,无论是否接受到内容

4)关闭

引用.close(); 养成良好的习惯

在使用完毕整个Scanner功能之后再去关闭,否则创新开启Scanner的应用也无效

Random

Random:产生随机数

1.导包 import java.util.Random

2.创建Random类型的引用

3.使用功能

引用.nextInt(); 随机产生一个int类型范围内的数据

引用.nextInt(整数n); 范围[0,n)

引用.nextDouble(); [0,1)

都是伪随机数,没有真正的随机数

公式1: [min,max) ran.nextInt(max-min)+min

公式1: [min,max] ran.nextInt(max-min+1)+min

公式1: [min,max) ran.nextDouble()*(max-min)+min

公式1: [min,max] ran.nextDouble()*(max-min+1)+min

If控制语句

流程控制语句:

顺序结构:默认顺序结构 从上到下,从左到右依次执行

选择结构:当满足某些条件就可以执行特定的代码

循环结构:重复执行一些代码

选择结构|分支结构:

单分支|单选择:

if(条件表达式){

语句体;

}

条件表达式:值为boolean类型的表达式

执行流程:

1)计算条件表达式

2)如果结果为true,执行语句体

3)如果结果为false,就不执行直接跳过

双分支|双选择:

if(条件表达式){

语句体1;

}else{

语句体2;

}

执行流程:

1)计算条件表达式

2)如果结果为true,执行语句体1

3)如果结果为false,执行语句体2

多分支|多选择: —多个if…else

if(条件表达式1){

语句体1;

}else if(条件表达式2){

语句体2;

}else if(条件表达式3){

语句体4;

}…

else{

语句体n;

}

执行流程:

1)计算条件表达式1

2)如果结果为true,执行语句体1

3)如果结果为false,计算条件表达式2,如果结果为true,执行语句体2

4)如果结果为false,计算条件表达式3,如果结果为true,执行语句体3

5)如果以上条件都不满足,就执行else中语句体n;

Switch控制语句

switch语句:定值判断

语法:

swtich(表达式){

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

default:

语句体n;

break;

}

说明:

表达式: 常为变量,可以为常量,没有意义

byte,short,int,char,枚举(1.5),字符串(1.7)

case:case后面接的值,表达式可能存在的值

值:只能为定值,不能是区间判断

break:终止switch语句,防止穿透

default:和if…else非常像,以上条件都不满足,就执行的default中对应的语句体,推荐使用,可以在任意位置,一般放在最后

执行流程:

1)计算表达式

2)把表达式的结果与case后面接的值进行判断,如果相等,就执行对应的语句体,如果执行完毕后遇到break,就结束swtich语句,如果没有回发生case穿透

3)以上条件都不满足,就执行的default中对应的语句体

case穿透:从当前满足的语句体执行完毕以后,不再进行判断case,直接执行下面的语句体,如果有break结束,如果没有,继续向下执行知道switch语句的结束

猜你喜欢

转载自blog.csdn.net/Super_XiongDa/article/details/90141631