目录
流程控制
流程控制的作用:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块
语句:以分号结尾的一段句子
控制语句的分类:顺序、选择、循环
分支语句
if语句
语法结构
//单分支
if(布尔表达式){
语句;
}
//多分支
if(条件1){
语句1;
}else if(条件2){
语句2;
}else{
语句3;
}
if执行过程
单分支:if对布尔表达式进行判断,如果判断布尔表达式为真,那么就执行里面的语句,否则不执行
多分支:if对条件1进行判断,如果条件1为真,那么就执行语句1,否则找到条件2,如果条件2满足,那么就执行语句2,否则执行语句3
注意:else与if匹配原则(else匹配最近if)
if (true)
if (false)
System.out.println("2");
else
System.out.println("1");
//1
//获得0-1之间的随机数
double random = Math.random();
//对浮点数随机数进行四舍五入
long round = Math.round(random);
if(round==1){
System.out.println("行动");
}else{
System.out.println("思考");
}
switch语句
概述:switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束
语法结构
switch (表达式){
case 值1: 语句1; break;
case 值2: 语句2; break;
case 值3: 语句3; break;
case 值4: 语句4; break;
……
default: 语句n;
}
执行流程
注意:
- switch语句中的变量类型可以是:byte、short、int、char、string、枚举类型、Integer
- switch语句可以用多个case语句
- 每个case后面跟一个要和表达式比较的值和“:”,且此值的数据类型必须与switch后面的变量数据类型保持一致
- 当变量值与case语句相等时,开始执行case语句后面的内容,执行完会判断此代码是否有break,如果有,则结束执行;若没有则继续向后执行穿过所有case以及default
- switch语句可以包含一个default分支,该分支一般写在switch的最后
- default不管放在任意位置,如果有case满足要求并且有break关键字,那么default都不会执行
- default可以放在任意位置,但是如果没有在最后一行,应加入break关键字防止穿透
public static void main(String[] args) {
System.out.println("请您输入1-7之间的整数");
int i = new Scanner(System.in).nextInt();
switch (i){
case 1: System.out.println("今天是周一");break;
case 2: System.out.println("今天是周二");break;
case 3: System.out.println("今天是周三");break;
case 4: System.out.println("今天是周四");break;
case 5: System.out.println("今天是周五");break;
case 6: System.out.println("今天是周六");break;
case 7: System.out.println("今天是周日");break;
default:
System.out.println("清按规则输入");
}
}
break与continue
- break:跳出循环
- continue:结束当前循环,跳到下一次循环
循环结构
前言
循环作用:将部分代码重复执行
循环四要素
- 条件初始化
- 条件判断
- 循环体
- 条件改变(迭代)
循环分类
- 当型:while循环、for循环
- 直到型:do……while循环
注意:三种循环效率一样高,都很慢
for循环
语法结构
for (初始化;循环条件;更改条件){
循环体;
}
注意:
- 符合循环条件则继续执行,不符合则跳出循环
- i变量的作用域为离变量最近的{}
执行流程
开始条件——循环条件(真)——循环体——更改条件——循环条件(真)——循环体——……
//打印1-9
for(int i=1;i<10;i++){
System.out.println(i);
}
嵌套for循环
for(开始条件;循环条件;更改条件){
//外层循环
for(开始条件;循环条件;更改条件){
循环体;//内层循环
}
}
具体流程:首先进入外层循环判断条件,条件为真则将里面的for循环整体执行一遍,更改外层循环条件后再判断条件是否成立,若成立则继续执行内层for循环,执行完更改外层循环条件再判断,如此循环往复
增强for循环
for(数据类型 变量名 : 数组或者集合对象){
循环体;//变量名即元素
}
用来遍历数组或集合
int[] a={1,2,3,4,5};
//遍历a数组
for (int b:a){
System.out.println(b);
}
//最终遍历出数组的所有元素
for循环变种
for(;;){
循环体;
}
注意:该for循环为死循环,需要配合break一起使用
while循环
语法结构
while (执行条件){
循环体;
}
注意:while循环先判断条件再执行(条件为true则继续执行循环体,不为true则跳出循环)
执行流程
//打印1-9
int i=1;
while(i<10){
System.out.println(i);
i++;
}
do……while循环
语法结构
do{
循环体;
}while(执行条件);
do……while循环形式:(先执行,再判断,循环体代码保证最少执行一次)条件为真则继续执行循环体,不为真则跳出循环
执行流程
//打印1-9
int i=1;
do {
System.out.println(i);
i++;
}while (i<10);