4-程序控制结构

第四章 程序控制结构

4.1 程序流程控制介绍

在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。
/1) 顺序控制

​ 程序从上往下执行,中间没有任何判断等语句

​ /2) 分支控制
​ /3) 循环控制

4.2 分支控制
4.2.1 单分支
if(条件表达式){

	执行代码块;

	...

}

说明:当条件表达式为true 会执行{}的代码,当为false时则不会执行

特别说明:如果{}只有一条语句可以不写{}建议写上{}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QSBa5M8D-1685024740409)(E:\Java_learning\typora_note\images\image-20230314150359310.png)]

4.2.2 双分支
if(条件表达式){

	执行代码块1}else{

	执行代码块2;

}

说明:当条件表达式为成立 会执行代码块1的代码,不成立则执行代码块2的代码,如果执行的代码只有一条语句可以省略{},否则不可以省略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-68tTfY2Z-1685024740410)(E:\Java_learning\typora_note\images\image-20230314150417286.png)]

4.2.3 多分支
if(条件表达式){

	执行代码块1}else if(条件表达式2){

	执行代码块2}

...

else{

	执行代码块n;

}

特别说明:多分支可以没有else,如果所有条件不成立,则没有执行代码入口,如果有else 所有条件不成立,则默认执行else的代码块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eL3tI2VJ-1685024740410)(E:\Java_learning\typora_note\images\image-20230314153900511.png)]

4.2.4 嵌套分支

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外
层分支。老师建议: 不要超过 3 层 (可读性不好)

if(){

	if(){

		if-else...

	}else{

		if-else...

	}

}
4.2.5 Switch分支结构
/*
	1.switch关键字,表示switch分支
	2.表达式对应一个值
	3.case 常量1:当表达式的值等于常量1,就执行语句块1
	4.break;表示退出switch
	5.如果和case 常量1,匹配就执行语句块1,如果不匹配就继续往下匹配case 常量2...
	6.如果没有一个匹配的就输出默认default 语句块;
*/
Switch(表达式){
    case 常量1:
    语句块1;
    break;
    
    case 常量2:
    语句块2;
    break;
    ...
    case 常量n:
    语句块n;
    break;
    
    default 语句块;
    break;
    
}

在这里插入图片描述

4.2.5.1 switch细节

switch使用细节:
1.表达式的数据类型,应和case后的常量保持一致或者是可以自动转换为可以相互比较的类型,
比如输入的是字符,而常量是int
2.switch(表达式)中的表达式返回值必须是(byte short int char enum枚举 String)
3.case句子中的值必须是常量或者是常量表达式,不能是变量
4.default语句是可以选择的,是可以没有的,没有匹配case时,输出default
5.如果没有break,那么程序就会顺序执行到switch末尾,除非遇到break才会跳出

4.3 Switch 和 If的比较
  1. 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句.
  2. 其他情况:对区间判断,结果为 boolean 类型判断,使用 if,if 的使用范围更广
4.4 For循环

For 基本语法:
for(循环变量初始化;循环条件;循环变量迭代){
循环操作语句(可以是多条语句);
}
说明:
1.for关键字,表示循环控制
2.for有四要素:(1)循环变量初始化(2)循环条件(3)循环操作语句(4)循环变量迭代
3.循环操作,这里可以有多条语句
4.如果循环操作语句只有一条可以省略{},建议写上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wgj8LcGf-1685024740411)(E:\Java_learning\typora_note\images\image-20230321162107121.png)]

For细节

1.循环条件是返回一个布尔值的表达式

2.for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。

3.循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代
语句,中间用逗号隔开

4.5 While 循环
4.5.1基本语法

循环变量初始化;

while(循环条件){

​ 循环体(语句);

​ 循环变量迭代;

}

  • 注意:
  • while循环也有四要素,只是和for循环放的位置不一样
  • 循环条件是返回一个布尔值的表达式true/false
  • while循环是先判断再执行语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mt7NxCgn-1685024740411)(E:\Java_learning\typora_note\images\image-20230323200606999.png)]

4.6 do while循环
4.6.1 基本语法

循环变量初始化;

do{

​ 循环体(语句);

​ 循环变量迭代;

}while(循环条件);

  • 注意:
  • do while 是关键字
  • 也有循环四要素,只是位置不一样
  • 先执行,在判断,也就是程序至少执行一次
  • 最后有一个分号;
  • 循环条件返回的是一个布尔值的表达式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1GhO30OE-1685024740411)(E:\Java_learning\typora_note\images\image-20230323204336340.png)]

4.7 多重循环控制
4.7.1 介绍

1.将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while 均可以作为外层循环和内层循环。
【建议一般使用两层,最多不要超过 3 层, 否则,代码的可读性很差】

2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 false 时,才会完全跳出内
层循环,才可结束外层的当次循环,开始下一次的循环[听不懂,走案例]。
3.设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EKNx5inX-1685024740412)(E:\Java_learning\typora_note\images\image-20230324145408015.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xfEc6MbQ-1685024740412)(E:\Java_learning\typora_note\images\image-20230324151551395.png)]

4.8 break 跳转控制语句
4.8.1 基本介绍

break语句用于终止某个语句块的执行,一般使用在 switch 或者循环[for , while , do-while]中。

4.8.2 基本语法
    { ......
    break;
    ......
    }
4.8.3 以while为例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B9YqNHUR-1685024740412)(E:\Java_learning\typora_note\images\image-20230416162600409.png)]

比较字符串是否相等使用equals()

4.9 continue 跳转语句
4.9.1 介绍

continue语句可以结束本次循环,继续执行下一次的循环。

4.9.2 语法
 { ......
    continue;
    ......
    }

和前面的break一样 都可以使用标签结束循环

4.9.4 以while为例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pp1Qk3c6-1685024740412)(E:\Java_learning\typora_note\images\image-20230423155928229.png)]

4.10 return 跳转控制语句

return 使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍,这里我们简单的提一下。注意:如
果 return 写在 main 方法,则表示退出程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q2GnOVij-1685024740413)(E:\Java_learning\typora_note\images\image-20230423173934107.png)]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值