笔记来源:韩老师的Java教学视频
推荐给每一个人,老师讲解的十分完善。从循环开始,看老师写代码真的受益良多,前面可以跳着看,但是代码部分真的要认真看老师写一遍,编程思维会有很大的提升
- 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句:
- 顺序控制
- 分支控制
- 循环控制
一。顺序控制
- 程序从上至下逐行地执行,中间没有任何地判断和跳转
- Java中定义变量时采用合法地前向引用。
错误例:
int num2 = num1 + 1:
int num1 = 10;
二。分支控制if-else
让程序有选择地执行
(一)。单分支
- 基本语法
if( 条件表达式 ){
执行代码块;
}
- 条件表达式为true,执行代码块
- 如果{}内只有一条语句,{}可以省略
(二)。双分支
- 基本语法
if( 条件表达式 ){
执行代码块1;
}
else{
执行代码块2;
}
- 条件表达式为true,执行代码块1,为false,执行代码块2
- 如果{}内只有一条语句,{}可以省略
(三)。多分支
- 基本语法
if( 条件表达式1 ){
执行代码块1;
}
else if( 条件表达式2 ){
执行代码块2;
}
else{
执行代码块3;
}
- 条件表达式1为true,执行代码块1,
表达式1不成立,判断表达式2为true,执行代码块2
以此类推
所有条件表达式都不成立,执行代码块3 - 多分支可以没有else,
如果所有地表达式都不成立,则一个执行入口都没有
(四)。嵌套分支
- 在一个分支结构中又完整嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支,外面的分支结构称为外层分支。
- 嵌套最好不要超过三层(可读性不好)
三。switch分支结构
- 基本语法:
switch( 表达式 ){
case 常量1:
语句块1;
break;
case 常量n:
语句块n;
break;
default:
语句块n;
break;
}
switch是关键字
当表达式的值等于常量1,就执行语句块1,然后break跳出循环;如果不等于,就继续匹配常量2,以此类推
如果一个都没有匹配上,就执行default语句
3. 注意事项
- 表达式的数据类型应与常量的数据类型一致
- 表达式的返回值必须是:byte、short、int、char、enum[枚举]、String
- 当程序执行完一个case语句时,如果没有break语句,会继续执行下一个语句,直到遇到break为止【穿透】
代码理解:
public static void main(String[] args){
int c = 1;
switch(c){
case 1:
System.out.println("1");//输出
case 2:
System.out.println("2");//输出
default:
System.out.println("5");//输出
}
}
swith适用于等值,if-else适用于区间
四。循环控制
(一)。for
- 基本语法:
for (循环变量初始化; 循环条件; 循环变量迭代;){
循环操作(语句);
}
当循环条件为false时,跳出循环
- 注意事项
- 循环条件时返回一个布尔值的类型
- 循环初始化可以有多条初始化语句,但要求类型一致,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开
- for()内的初始化和变量迭代可以写到别的地方,但是两边的分号不能省略
代码理解:
int i = 1;//循环变量初始化
for ( ; i <= 10; ){
循环操作(语句);
i++;//循环变量迭代
}
此时i不再是局部变量,可以在作用域内被调用
(二)。while
- 基本语法:
循环变量初始化;
while(循环条件){
循环体;
循环变量迭代;
}
(三)。do…while
- 基本语法:
循环变量初始化;
do{
循环体;
循环变量迭代;
}while(循环条件);
先执行,再判断,一定会执行一次
(四)。多重循环控制
- 将一个循环放在另一个循环体内,就形成了嵌套关系。
- 一般使用两层,最多不要超过3层(代码的可读性很差)
- 多重循环可以分为外层循环和内层循环,只有当内层循环的循环条件为false时,完全跳出内层循环,才会结束外层的当次循环,开始下一个循环
- 设外层循环为m次,内层循环为n次,则内层循环体实际需要执行m*n次
五。跳转控制语句
(一)。break
- 循环,但是循环的次数不明,当某个条件满足时。终止循环。
- break出现在多层嵌套的语句块中,可以通过标签指明要终止的是哪一层语句块
- 标签:
- 基本使用:
label:
{...
label2:
{...
break label1;
}
}
- label1是标签,名字由程序员指定
- break后指到哪个标签,就退出哪个循环
- 在实际开发中,尽量不使用标签
- 如果没有指定break,默认退出最近的循环体
(二)。continue
- 用于结束本次循环,继续执行下一次循环
- 与break一样,可以指定标签来确认跳出哪一个循环继续
(三)。return(简单介绍)
- 用于方法中,表示跳出方法