多重循环及程序调试

(重点)

掌握java二重循环

掌握程序调试

一、为什么使用多重循环
输出5*5星型矩阵

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

输出等腰三角形

public class Demo4 {
	public static void main(String[] args) {
		//外层循环,目的是输出每行内容,起到换行的作用
		for (int i = 0; i < 6; i++) {
			//内层循环1.输出每行最左面的直角三角形空白,防止输出成*直角三角形
			for (int j = 0; j < (6 - i); j++) {
				System.out.print(" ");
			}
			//内层循环2.输出三角形左面部分,目前没想到左面可以直接输出整个三角形
			for (int a = 0; a < i + 1; a++) {
				System.out.print("*");
			}
			//内层循环3.输出三角形的右面部分
			for (int b = 0; b < i; b++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

什么是多重循环

一个循环体又包含另一个完整的循环结构
例:

while(循环条件1){
     //循环操作1
     while(循环条件2){
          //循环操作2
     }
}

多重循环的使用:
注意:
1.各循环可互相嵌套
2.一般不超过三层
3.外层循环变量变化一次,内层循环变量要变化一遍

例题:
输出九九乘法表:

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

break语句:

描述4000米长跑比赛

for (int i = 0; i<10; i++) {
    //跑4000米;
	 if ( 不能坚持 ) {
         break;     //退出比赛
	}
}

break语句语法:

改变程序控制流:
用于do while、while、for循环中,可跳出循环而执行循环后的语句
如何使用break语句:

例题:
循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误

import java.util.Scanner;

public class Demo4 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("输入学生姓名:");
		String name = input.next();
		for(int i=1;i<6;i++){
			System.out.println("请输入第"+i+"门课的成绩:");
			int num = input.nextInt();
			if(num<0){
				System.out.println("抱歉,分数录入错误,请重新进行录入");
				break;
			}
		}
	}
}

1~10之间的整数相加,得到累加值大于20的当前数

public class Demo4 {
	public static void main(String[] args) {
		int sum = 0;
		for(int i=1;i<=10;i++){
			sum+=i;
			if(sum>20){
				System.out.println("累加值大于20了,累加值为:"+sum);
				break;
			}
		}
	}
}

为什么需要continue

例题:
循环录入Java课的学生成绩,统计分数大于等于80分的学生比例

import java.util.Scanner;

public class Demo4 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("输入班级总人数:");
		int num = input.nextInt();
		int num1 = 0;
		for(int i=1;i<=num;i++){
			System.out.println("请输入第"+i+"位学生的成绩:");
			int score = input.nextInt();
			if(score>=80){
				num1++;
			}
		}
		System.out.println("80分以上的学生人数是:"+num1);
		System.out.println("80分以上的学生所占的比例为:"+(double)num1/num*100+"%");
	}
}

什么是continue语句:

continue:只能用在循环里
continue作用:跳过循环体中剩余的语句而执行下一次循环

while() {
     ……
     ……
     continue;//通常与条件语句一起执行,加速循环。
     ……
     ……
}

小结:

求1~10之间的所有偶数和

public class Demo4 {
	public static void main(String[] args) {
		int sum = 0;
		for(int i=0;i<=10;i++){
			if(i%2!=0){							//判断是否为奇数,是,则跳过本次循环
				continue;
			}
			sum+=i;
		}
		System.out.println("1~10之间偶数的和为:"+sum);
	}
}

对比break和continue

一、使用场合
break常用于switch结构和循环结构中
continue一般用于循环结构中
二、作用
break语句终止某个循环,程序跳转到循环块外的下一条语句
continue跳出本次循环,进入下一次循环
双重循环亦是如此

return:结束当前方法的执行并退出,返回到调用该方法的语句处(涉及返回值)

为什么需要程序调试:

编写程序过程中有时出现错误,但不好发现和定位错误,有没有好的方法呢?
通过代码阅读或者加输出语句查找程序错误
当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”
什么是程序调试:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

如何进行程序调试:

顺序输出1~5这5个数字

int i = 1;
System.out.println("程序调试演示,注意观察i的值:");
while(i < 5){
	System.out.println(i);
	i++;
}

练习

打印数列
使用循环输出 100、95、90、85…5

public class Demo4 {
	public static void main(String[] args) {
		for (int i = 100; i > 0; i--) {
			if (i % 5 != 0) {
				continue;
			}
			System.out.println(i);
		}

	}
}

public class Demo4 {
	public static void main(String[] args) {
		int i = 100;
		while (i > 0) {
			
			if (i % 5 != 0) {
				i--;
				continue;		
			}
			System.out.println(i);
			i--;
		}
	}
}

public class Demo4 {
	public static void main(String[] args) {
		int i = 100;
		do {

			if (i % 5 != 0) {
				i--;
				continue;
			}
			System.out.println(i);
			i--;
		} while (i > 0);
	}
}

输出星期数
从键盘输入一位整数,当输入1~ 7时,输出“星期一”~“星期日”
输入其他数字时,提示用户重新输入

import java.util.Scanner;

public class Demo4 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		while (true) {
			System.out.println("请输入一个1~7之间的数字,输入0退出程序:");
			int num = input.nextInt();
			switch (num) {
				case 1:
					System.out.println("星期一\n");
					break;
				case 2:
					System.out.println("星期二\n");
					break;
				case 3:
					System.out.println("星期三\n");
					break;
				case 4:
					System.out.println("星期四\n");
					break;
				case 5:
					System.out.println("星期五\n");
					break;
				case 6:
					System.out.println("星期六\n");
					break;
				case 7:
					System.out.println("星期日\n");
					break;
				case 0:
					System.out.println("程序结束");
					break;
				default:
					System.out.println("您输入的数字不合格,只能输入1~7之间的数字\n");
					break;
			}
			if(num==0){
				break;
			}
		}
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值