双重循环及break,continue,return的运用

双重循环的运用场景

在控制台输出5行5列*

*****
*****
*****
*****
*****

方式一:每行输出*****,输出5次

System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");		

方式二:方式一可以通过循环来实现

for(int i =1;i<=5;i++){
			System.out.println("*****");
		}

方式三:方式二中的{}里的代码表示在一行输出5个*,这个需求也可以通过循环来实现

for(int j =1;j<=5;j++){
				System.out.print("*");
			}
			System.out.println();
		}

	}

}
  • 外层循环变量变化1次,内层循环变量变化1遍(内层循环是外层循环的循环操作,一定要等循环操作执行完之后,外层循环变量才进行迭代)
  • 外层循环变量可以控制行数,内层循环变量控制每一行的列数

练习1:输出一下图片格式:
在这里插入图片描述

package cn.bdqn.demo01;

public class Demo03 {

	public static void main(String[] args) {
		
		//外层循环控制行数
		for(int i =1;i<=7;i++){
			//在输出每一行*之前,要输出空格“ ”,通过分析发现,每一行*前面的空格数量不一样的
			for(int k =1;k<=7-i;k++){
				System.out.print(" ");
			}
			
			
			//输出*,每一行的*数量一样,都是7个
			//内层循环控制每一行*的数量
			for(int j =1;j<=6;j++){
				System.out.print("*");
			}
			//输出完每一行*后要换行
			System.out.println();
		}

	}

}

练习2:使用双重for循环输出九九乘法表,外层循环控制行数,九九乘法表,一共有9行

package cn.bdqn.demo02;

public class Demo01 {

	public static void main(String[] args) {
		//使用双重for循环输出九九乘法表
		//外层循环控制行数,九九乘法表,一共有9行
		for(int i =1;i<=9;i++){
			//内层循环控制每一行的列数,九九乘法表每一行的列数与行号相同
			for(int j =1;j<=i;j++){
				System.out.print(j+"×"+i+"="+(i*j)+"\t");
			}
			//输出每一行的乘式后换行
			System.out.println();
		}
			
	}

}

在这里插入图片描述

break

作用场景:switch选择结构和循环结构中

  • 作用:结束整个switch选择结构或循环结构
  • 注意:break在循环结构中使用,一般结合if判断语句一起使用,因为结束循环需要一个原因
  • break不能被使用在循环或者switch结构外

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

package cn.bdqn.demo03;

import java.util.Scanner;

public class Demo02 {

	public static void main(String[] args) {
		//循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入学生姓名:");
		String name = sc.next();
		
		//定义一个变量用来累加成绩
		double sum = 0;
		
		for(int i =0;i<5;i++){
			System.out.println("请输入第"+(i+1)+"门课的成绩:");
			double score =sc.nextDouble();
			if(score<0){
				System.out.println("成绩不能为负数,结束录入");
				break;
			}else{
				sum+=score;
				//如果能正确累加到第五门课的成绩,就计算平均分并输出平均分
				if(i==4){
					double avg =sum/5;
					System.out.println(name+"的5门课平均分为:"+avg);
				}
			}
		}
		
		
		
	}

}

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

package cn.bdqn.demo03;

public class Demo03 {

	public static void main(String[] args) {
		//1~10之间的整数相加,得到累加值大于20的当前数
		
		//定义一个变量用来存放累加的数字之和
		int sum = 0;
		for(int i =1;i<=10;i++){
			sum+=i;
			//每循环累加1次,就需要判断一下sum是否大于20,如果大于20,就结束累加并输出当前这个数
			if(sum>20){
				System.out.println("sum="+sum);
				System.out.println(i);
				break;
			}
		}


	}

}

continue

作用场景:continue只能作用在循环结构中

  • 作用:遇到continue,结束当前(本次)循环continue后续操作,继续执行下一次循环操作
  • 注意:continue一般结合if选择结构一起使用,因为结束本次循环continue后续操作要有一个原因
  • continue不能被使用在循环外

练习5:使用continue实现输出1-100之前所有偶数

package cn.bdqn.demo04;

public class Demo02 {

	public static void main(String[] args) {
		//使用continue实现输出1-100之前所有偶数
		
		for(int i =1;i<=100;i++){
			//在输出之前需要进行判断
			if(i%2!=0){//i%2!=0,说明这个数是奇数,就结束本次循环continue后面的输出操作,从而实现奇数不输出
				continue;
			}
			System.out.println(i);
		}

	}

}

练习6:使用continue实现求1-100之间所有偶数之和

package cn.bdqn.demo04;

public class Demo03 {

	public static void main(String[] args) {
		//使用continue实现求1-100之间所有偶数之和
		
		//定义一个变量用来存储累加数据之和
		int sum =0;
		
		for(int i =1;i<=100;i++){
			//累加之前,要进行判断,如果数是奇数,就不进行累加操作,继续执行下一次循环操作
			if(i%2!=0){
				continue;
			}
			
			sum+=i;
		}
		
		System.out.println("1-100之间所有偶数之和:"+sum);
		
	}

}

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

package cn.bdqn.demo04;

import java.util.Scanner;

public class Demo04 {

	public static void main(String[] args) {
		//循环录入Java课的学生成绩,统计分数大于等于80分的学生比例

		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入班级学生人数:");
		
		int num = sc.nextInt();
		
		//声明一个变量用来统计分数大于80分的人数
		double count = 0;
		
		//获取学生的成绩
		for(int i =1;i<=num;i++){
			System.out.println("请输入第"+i+"个学生的成绩:");
			double score =sc.nextDouble();
			//判断学生成绩是否大于80分,如果大于80分,就统计到变量count中
			if(score<80){
				continue;
			}
			
			count++;
		}
		
		//输出分数大于80分的人数
		System.out.println("分数大于80分的人数有:"+(int)count+"人");
		
		double result =count/num;
		System.out.println("80分以上学生所占比例:"+result*100+"%");

	}

}

break跳出指定循环

在多重循环中使用break跳出指定循环,可以给循环加上标记

package cn.bdqn.demo04;

public class Demo05 {

	public static void main(String[] args) {

		// 在多重循环中使用break跳出指定循环,可以给循环加上标记
		a: for (int i = 1; i <= 10; i++) {
			System.out.print(i + "-");
			b: for (int j = 10; j <= 100; j += 10) {
				System.out.print(j + " ");
				if (j == 30) {
					break a;
				}
			}
			System.out.println();
		}

		System.out.println("----------------");

		a: for (int i = 1; i <= 10; i++) {
			System.out.print(i + "-");
			b: for (int j = 10; j <= 100; j += 10) {
				System.out.print(j + " ");
				if (j == 30) {
					continue a;
				}
			}
			System.out.println();
		}

	}

}

return

  • 作用场景:方法中
  • 作用:遇到return,结束方法,如果方法有返回值,通过return将值返回给方法的调用者
//定义一个方法
	public static String test(){
		for(int i=1;i<=10;i++){
			if(i==5){
				return "方法执行完了" ;
			}
			System.out.println(i);
		}
		return null;
	}
	
	

	public static void main(String[] args) {
		int num = 10;
		System.out.println("abcdefg");
		String result =test();
		System.out.println(result);
	}

练习8:输出以下图片样式:
在这里插入图片描述

package cn.bdqn.demo03;

import java.util.Scanner;

public class Subject03 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("您想要几行数字?");
		int sum = sc.nextInt();
		for(int i=1;i<=sum;i++){
			for(int j=1;j<=sum-i;j++){
				System.out.print(" ");
			}
			for(int k=1;k<=2*i-1;k++){
				System.out.print(i);
			}
			System.out.println("");
		}
	}

}

练习9:从键盘输入一位整数,当输入17时,输出“星期一”“星期日”, 输入其他数字时,提示用户重新输入

package cn.bdqn.demo03;

import java.util.Scanner;

public class Subject02 {

	public static void main(String[] args) {
		/*
		 * 从键盘输入一位整数,当输入1~7时,输出“星期一”~“星期日”
		 * 输入其他数字时,提示用户重新输入
		 */
		Scanner sc = new Scanner(System.in);
		
		int num;
		do{
			System.out.println("请输入1~7:");
			num = sc.nextInt();
			switch(num){
			case 1:System.out.println("星期一");break;
			case 2:System.out.println("星期二");break;
			case 3:System.out.println("星期三");break;
			case 4:System.out.println("星期四");break;
			case 5:System.out.println("星期五");break;
			case 6:System.out.println("星期六");break;
			case 7:System.out.println("星期日");break;
			default:System.out.print("输入错误!");
			}
		}while(num>=7||num<=1);
		
	}

}

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道长爱睡懒觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值