第五章:多重循环及程序调试
一,什么是多重循环,
多重循环:一个循环体内又包含另一个完整的循环结构
例子:
while(循环条件1){
//循环操作1
while(循环条件2){
//循环操作2
}
}
do{
//循环操作1
do{
//循环操作2
}while(循环条件2);
}while(循环条件1);
for(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
while(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
类似于上面代码这样的结构,称为多重循环,他们都分为外层循环和内层循环。
二,多重循环的使用
注意:
- 各循环可互相嵌套
- 一般不超过三层
- 外层循环变量变化一次,内层循环变量要变化一遍
来个案例用一下就知道了:
使用双重循环输出九九乘法表:
public class practice1 {
public static void main(String[] args) {
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"+"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/562f575b58794fb3ad447d9347994dc0.png#pic_center)
三,能影响循环结构语句
三个影响循环结构的语句:
1. break
break
我们在switch
语句中已经见到过了,在循环中使用break
,后面的代码将不会进行,直接跳出当前循环。
//描述4000米长跑比赛,我在第八圈不能坚持了,我想弃权
for (int i = 0; i<10; i++) {
//跑4000米;
if ( 不能坚持 ) {
break; //退出比赛
}
}
2. continue
continue
和break类似,后面代码也不会执行,但是会跳出本次循环,进入下次的循环中。
循环录入Java课的5位学生成绩,统计分数大于等于80分的学生比例
1.通过循环,获得
分数大于等于80分的学生人数num
2.判断:如果成绩<80,
不执行num++,直接进入下一次循环
for(int i=0;i<5;i++){
int score = sc.nextDouble();
if(score<0){
continue;
}
num++;
}
3. return
return
是结束当前方法,如果是放到主(main)方法里面,就会结束程序。
for(int i=0;i<num;i++){
for(int j=0;j<num;j++){
if(条件){
return;
}
}
}
这里的条件判断如果成立,就会直接程序结束。
4.小结
对比break
和continue
:
使用场合:
-
break
常用于switch结构和循环结构中
-
continue
一般用于循环结构中
作用(循环结构中):
-
break
语句终止某个循环,程序跳转到循环块外的下一条语句
-
continue
跳出本次循环,进入下一次循环
- 双重循环亦如此
return
:结束当前方法的执行并退出,返回到调用该方法的语句处
四,程序调试
我们在学完循环之后呢,我们代码就有了一定的复杂性,编写程序过程中有时出现错误,但不好发现和定位错误,有没有好的方法呢?通过代码阅读或者加输出语句查找程序错误,当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”,所以我们接下来学习程序调试。
int i = 1;
System.out.println("程序调试演示,注意观察i的值:");
while(i < 5){
System.out.println(i);
i++;
}
在eclipse中我们点击debug
(虫子标识)后,有三个快捷键
- F 5:逐步进行
- F 6:跳过方法,直接拿到返回值,逐步进行
- F 7:进入方法后使用,跳出方法。
五,总结
1.双重循环中,外层循环变量与内层循环变量的关系是什么?
2.在循环中,break的作用是什么?
3.在循环中,continue的作用是什么?
4.如何进行程序调试?
- 在eclipse中我们点击
debug
(虫子标识)后,有三个快捷键:F5,F6,F7