栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学习java的第六节课 多重循环

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习java的第六节课 多重循环

多重循环及程序调试 1.为什么要使用多重循环

像以上这些循环输出图形,进入一次循环之后在这次循环里再次做循环,需要使用二重循环

//用*输出一个5X5的正方形
public class Test0701 {
	public static void main(String[] args) {
		//i代表行数
		//外部循环过程
		//参数初始化:i,行数从1开始
		//条件判断:i<=5 行数一共有五行
		//更新循环变量i++,每次循环行数+1
		for(int i=1;i<=5;i++) {
			//o:每一行星星的列数
			//参数初始化:i,列数从1开始
			//条件判断:i<=5 列数一共有五行
			//更新循环变量i++,每次循环行数+1
			for(int o=1;o<=5;o++) {
				//这里要用print,不能使用println使他换行
				System.out.print("*");
			}
				//每一行星星输出完毕后要换行,输出一个换行
				System.out.println();
		}
		
	}
	
}

嵌套循环,外层每进入一”次“,内层循环要执行一整”遍“。

2.多重循环输出多边形 输出一个平行四边形

在输出星星的时候还要输出左边的空白

//用*输出一个5X5的平行四边形
public class Test0702 {

	public static void main(String[] args) {
				//i代表行数
				//外部循环过程
				//参数初始化:i,行数从1开始
				//条件判断:i<=5 行数一共有五行
				//更新循环变量i++,每次循环行数+1
		for(int i=1;i<=5;i++) {
			//o:空白(在循环内定义的变量仅限于在循环中使用,出循环后还可以重新定义该变量。)
			//参数初始化:o从1开始
			//条件判断:每一行的空白数量都是5-行数i,这样会让每次输出的空格数量-1
			//跟新循环变量o++,每次循环时o+1
			for(int o =1;o<=5-i;o++) {
				
				System.out.print(" ");
			}
			
			//o:每一行星星的列数
			for(int o=1;o<=5;o++) {
				//这里要用print,不能使用println使他换行
				System.out.print("*");
			}
				//每一行星星输出完毕后要换行,输出一个换行
				System.out.println();
			

	}

输出一个等边三角形

多列几个数据寻找他们的规律,寻找变量与内部函数里面的的关系。

//输出一个三角形
public class Test0703 {

	public static void main(String[] args) {
		//输出行数
		//外部循环过程
		
		for(int i=1;i<=5;i++) {
			//输出空白
			for(int o =1;o<=5-i;o++) {
				System.out.print(" ");
			}
			//输出列数星星
			//参数初始化:o,行数从1开始
			//条件判断:o<=2*i-1,符合运算的规律
			//更新循环变量o++,每次循环行数+1
			for(int o =1;o<=2*i-1;o++) {
				System.out.print("*");
			}System.out.println();
		}

	}

}

与平行四边形一样,每次外部循环内部循环的每行要输出相应的空格和星星,寻找空格,星星与“ i ”之间的关系,写成内部循环。

3.break语句

import java.util.*;

public class Test0704 {

public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	System.out.println("请输入你的姓名");

	String name = input.next();
	// 做一个标识,检查用户输入时,输入是否有误 true代表无误 变为false则为输入有误
	boolean flag = true;

	double sum = 0;
	for (int i = 1; i <= 5; i++) {
		System.out.println("请输入第" + i + "门功课的成绩:");
		// 每门课的成绩
		double fen = input.nextDouble();

		// 如果录入为负,停止录入并提示
		if (fen < 0) {
			System.out.println("输入的数值不符合规定。");
			flag = false;// 不符合规定时,将标识变为false
			break;// break跳出循环之后会继续输出循环外的语句
		}

		sum += fen;

	}
	// 写一个选择结构,只挑选输入对的(flag的值为true的)
	if (flag == true) {
		// 平均分
		double arg = sum / 5;
		System.out.println(name + "平均成绩为" + arg);
		}
	}
}

break语句跳出循环之后会继续输出循环外的语句,所以要在之前声明一个布尔型变量,做一个标识,录入为正确标为true,录入错误标为false,利用if选择结构,只有标识为true的才可以进入计算平均成绩,标识为false的则跳出循环。

为什么需要continue

import java.util.*;

public class Test0705 {
	public static void main(String[] args) {
		//根据输入班级人数录入相应成绩,计算80分以上人员的比例
		Scanner input = new Scanner(System.in);
		//输入班级总人数
		System.out.println("请输入班级人数");
		int ren = input.nextInt();
		//班级中大于80分的人数
		int shu =0;
		//循环输入同学的成绩
		for(int i = 1;i<=ren;i++) {
			System.out.println("请输入第"+i+"位同学的成绩:");
			int fen = input.nextInt();
			//如果分大于80的进入选择结构,则shu进行一次++记录一人
			if(fen>80) {
				shu ++;
			}
		}
		System.out.println("80分以上同学的人数是:"+shu);
		//用计算来算出班级中大于80分的人员比例,要把数值转换为double。
		System.out.println("80分以上同学所占的比例是"+(double)shu/ren*100+"%");
		
			}
}

		

不使用跳转语句的方法。

通常与条件语句一起使用,跳出本次循环而进入下一次循环。

import java.util.Scanner;

public class Test0706 {

	public static void main(String[] args) {
		//根据输入班级人数录入相应成绩,计算80分以上人员的比例
		Scanner input = new Scanner(System.in);
		//输入班级总人数
		System.out.println("请输入班级人数");
		int ren = input.nextInt();
		//班级中大于80分的人数
		int shu =0;
		//循环输入同学的成绩
		for(int i = 1;i<=ren;i++) {
			System.out.println("请输入第"+i+"位同学的成绩:");
			int fen = input.nextInt();
			//使用continue语句,不是符合分数大于80的则进入选择结构执行continue语句返回循环开始进行下一次循环。
			//符合分数大于80的则不进入选择结构,由shu++进行一次+1记录。
			if(fen<=80) {
				continue;
			}
			shu ++;
		}
		System.out.println("80分以上同学的人数是:"+shu);
		//用计算来算出班级中大于80分的人员比例,要把数值转换为double。
		System.out.println("80分以上同学所占的比例是"+(double)shu/ren*100+"%");
		
		
		

	}

}

使用跳转语句continue

public class Test0708 {
	public static void main(String[] args) {
		int sum = 0;
		//循环1-10
		for (int i = 0; i <= 10; i++) {
		//如果输出不为偶数的则不进行输出终止此次循环用continue返回该循环开始进行下一次循环
			if (i % 2 != 0) {
				continue;
			}
            sum += i;
		}
		System.out.println(sum);
	}
}
对比break和continue

1.使用场合

​ break常用于switch结构和循环结构中

​ continue一般用于循环结构中

2.作用(循环结构中)

​ break 语句终止本次循环,程序跳转到循环块外的下一条语句

​ continue跳出本次循环,进入下一次循环

​ 双重循环也是如此

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号