多重循环和程序调试

多重循环和程序调试

目标:

1:掌握Java二重循环(2层嵌套的循环)

2:使用跳转语句控制程序流程

  • break
  • continue

3:掌握程序调试(debug)

Java二重循环

需求:打印一些图形
标准方法:外层循环控制打印多少行,内层循环控制每一行的内容

思路:

1:先看图形每一行在干什么,能不能一个循环搞定

2:每一行对象能搞定后,看能不能搞定n行。

图形一:

/*   打印下面的图形
        *****
        *****
        *****
        *****
 */
 
 public class Demo1 {
	public static void main(String[] args){
        // 输出行数
		for(int i = 1 ; i<= 4;i++){
            // 输出每一行的内容
			for(int j = 1;j<= 5;j++) {
				System.out.print("*");
			}
            //  换行
			System.out.println();
		}
	}
}

图形二:

/*   打印下面的图形
        *
        ***
        *****
        *******
        *********
 */
 public class Demo2 {
	public static void main(String[] args) {
		// 输出行数
		for(int i = 1;i<=5;i++) {
			// 输出每一行的内容
			for(int j = 1;j<= (2*i-1);j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

图形三

/*   打印下面的图形 
           *
          ***
         *****
        *******
 */
 public class Demo3 {
	public static void main(String[] args) {
		// 输出行数
		for(int i = 1;i<= 4;i++) {
			// 输出每一行的内容
			// 输出空格
			for(int k =4;k>i;k--) {
				System.out.print(" ");
			}
			// 输出*
			for(int j=1;j<=2*i-1;j++) {
				System.out.print("*");
			}
			// 换行
			System.out.println();
		}
	}
}

打印9x9乘法表

// 乘法口诀表正序
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(j+"*"+i+"="+i*j+"  ");
			}
			// 换行
			System.out.println();
		}
	}
}

多重循环的语法:

多重循环指的就是循环嵌套,但是一般嵌套的循环也就2层,所以多重循环又被成为二重循环。

你能想到的循环结构都可以随意嵌套

多重循环:最外层的被成为外层循环,嵌套的循环被成为内层循环。

外层循环执行一次,内层循环会执行一遍。
while(){
    while(){
        
    }
}

while(){
    do{
        
    }while();
}
for(){
    while(){
        
    }
    do{
        
    }while();
}

跳转语句控制程序流程

死循环:无法结束的循环
while(true){
    
}
do{
    
}while(ture);
for(;;){
    
}
break( 中断 )
  • 在循环中表示结束循环(多重循环中只会结束当前循环)
  • 在switch中表示终止判断
//需求:录入5名学生的成绩,并计算大于80分的人数
//导入Scanner
import java.util.Scanner;
public class Demo5 {
	public static void main(String[] args) {
        // 创建对象
		Scanner input = new Scanner(System.in);
        // 创建个数的变量
		int num = 0; 
		// 逐个输入成绩
		for(int i = 1; i <= 5; i++) {
			System.out.print("请输入第"+i+"名学生成绩:");
			double score = input.nextDouble();
            // 创建循环
			if(score < 0 || score > 100) {
				System.out.println("输入错误!");
                // 结束当前循环
				break;
			}else if(score > 80) {
				num ++;
			}
		}
		System.out.println("大于80分的学生数量为:"+num);
	}
}

continue(继续)
equals:比较字符串的内容是否相同
// 输入用户名和密码,正确则登录成功,失败则重试
// 导入Scanner
import java.util.Scanner;
public class Demo6{
	public static void main(String[] args) {
				// 创建对象
				Scanner input = new Scanner(System.in);
				System.out.print("请输入您的用户名:");
		        // 输入用户名
				String username = input.next();
				do {
					System.out.print("请输入您的密码:");
		            // 输入密码
					String password = input.next();
					// 设定密码,判断密码是否正确
					if(!"messi10".equals(password)) {
						System.out.println("密码错误!请重试!");
		                // 结束本次循环 继续下次循环
						continue;
					}
		            //循环终止
					break;
				}while(true);
				// 输入正确后提示登录成功
				System.out.println("登录成功!");
			}
	}

continue只能出现在循环中!它表示结束本次循环,进入下一次循环。

掌握程序调试(debug)超级重要,必须要会!!!

世界上没有完美的程序,玩么是尽力将我们的程序接近完美。

bug(八阿哥):臭虫

解决问题方法:

1:读代码,构想运行的结果

2:通过输出语句(System.out.println())/日志来打印内容

3:通过debug工具

​ 断点(breakpoint):程序中断的位置(暂停的位置)

​ 表量表(variable):展示在当前方法内的局部变量(在debug时经常观察他)

​ (1)在预测的可能出现的问题的位置左侧双击

​ (2)通过debug as方式运行程序,他会自动运行到断点位置然后暂停,等待你的下一步指令,被选中暂停的这一行目前处于将要执行还未执行的状态

  • F5(step into)(目前了解)表示进入要执行的方法内

  • F6(step over)(必须掌握)表示执行当前行的代码,然后切换到下一行。

  • F8(resume)(必须掌握)快速放行到下一个断点位置(跳过我们不想查看的部分)

(3)观察变量表等信息,发现问题,解决问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值