Java基础——流程控制语句(循环结构)

一.引言

循环结构可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,但反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而借书循环,否则循环将一直执行下去,形成死循环。
循环语句的组成:

  1. 初始化语句:一条或多条语句,这些语句完成一些初始化操作
  2. 判断条件语句:这是一个boolean表达式,这个表达式能决定是否执行循环体
  3. 循环体语句:这个部分是要多次执行的语句
  4. 控制条件语句:这个部分是在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。(使变量有规律的变化)

二. for循环语句

(1)格式

for(初始化语句;判断条件语句;控制条件语句){
	循环体语句;
}

(2)执行流程

  1. 执行初始化语句
  2. 执行判断条件语句,看起结果是true还是false
    如果是false,循环结束
    如果是true,继续执行
  3. 执行循环体语句
  4. 执行控制条件语句
  5. 回到第二步继续执行

(3)注意事项

  • 判断条件语句的结果是一个boolean类型
  • 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略(建议都不省略)

(4)流程图

Created with Raphaël 2.3.0 开始 初始化语句 判断条件语句? 循环体语句 控制条件语句 结束 yes no

三. while循环语句

(1)格式

//基本格式
while(判断条件语句){
	操作语句;
}


//详细格式
初始化语句;
while(判断条件语句){
	循环体语句;
	控制条件语句;
}

(2)执行流程

  1. 执行初始化语句
  2. 执行判断条件语句,看起结果是true还是false
    如果是false,循环结束
    如果是true,继续执行
  3. 执行循环体语句
  4. 执行控制条件语句
  5. 回到第二步继续执行

(3)流程图

Created with Raphaël 2.3.0 开始 初始化语句 判断条件语句? 循环体语句 控制条件语句 结束 yes no

四.do…while循环语句

(1)格式

//基本格式
do{
	操作语句;
}while(判断条件语句);


//详细格式
初始化语句;
do{
	循环体语句;
	控制条件语句;
}while(判断条件语句);

(2)执行流程

  1. 执行初始化语句
  2. 执行循环体语句
  3. 执行控制条件语句
  4. 执行判断条件语句,看起结果是true还是false
    如果是false,循环结束
    如果是true,返回执行第二步

(3)流程图

Created with Raphaël 2.3.0 开始 初始化语句 循环体语句 控制条件语句 判断条件语句? 结束 yes no

五.三者之间的联系与区别

(1)for和while的区别

由流程图我们就可以看出,for循环和while循环完全一致,他们可以等价转换,但其实他们之间还是有一些小的区别。

  • 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束后还可以继续访问。
  • 场景区别:for循环适合针对一个范围判断进行操作。
    while循环适合判断次数不明确的操作。

其实他俩的使用区别涉及到了java中的另一个知识点——局部变量,这里就不在细说。详情请查看此处

(2)三者的区别

三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但也有小区别:

  • do…while循环至少会执行一次循环体语句(先执行,再判断)
  • for循环和while循环只有在条件成立时才会去执行循环体语句(先判断,再执行)

(3)注意事项

写程序的时候,我们一般优先考虑for循环,再考虑while循环,最后考虑do…while循环。

六.嵌套循环(难点)

(1)执行流程

执行流程:外层循环执行一次,内层循环执行一遍

(2)案例

1.需求:请输出一个4行5列的星星(*)图案。

class 类名{
	public static void main(String[] args){
		for(int y = 0;y < 4;y++){
			for(int x = 0;x < 5;x++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

注:上述代码中有两种输出格式
System.out.print();
System.out.println();
这两个的区别就在于第二个可以换行输出,第一个不换行输出。

2.需求:请输出如下图形。

*
**
***
****
******
class 类名{
	public static void main(String[] args){
		for(int y = 0;y < 5;y++){
			for(int x = 0;x <= y;x++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

注:上述代码涉及到了转义字符“\t”。他是输出一个制表符距离。详情请查看此处

3.需求:请输出九九乘法表。

class 类名{
	public static void main(String[] args){
		for(int y = 1;y <= 9;y++){
			for(int x = 1;x <= y;x++){
				System.out.print(x + "*" + y + "=" + y*x + "\t");
			}
			System.out.println();
		}
	}
}

(3)注意事项

  • break和continue只能作用于直属的循环层次

七.结语

循环语句是编程中非常重要和实用的工具。通过合理地运用for循环、while循环和do-while循环,以及灵活运用嵌套循环,我们能够更加高效地编写代码,并解决各种不同的问题。所以我们要熟悉掌握循环语句。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值