Java执行语句-特殊的流程控制语句

特殊的流程控制语句

  1. 分类

    break

    continue

    return

    label

  2. break
    2.1 含义:作用于循环,表示结束当前循环
    2.2 做实验:

while(true){
    System.out.println("111");
    System.out.println("222");
    if(true){
    System.out.printn("333");
    }
}
  1. 案例:循环录入麻生希同学5门课的成绩并计算平均分, 如果某分数录入为负,停止录入并提示
//解法一:
import java.util.Scanner;
public class Test6{
	public static void main(String[] args){
		
		Scanner scan = new  Scanner(System.in);
		double sum = 0;
		double avg = 0;
		for(int i = 1;i<=5;i++){
			System.out.println("请输入第"+i+"门成绩");
			double score = scan.nextDouble();
			if(score<0){
				System.out.println("分数为负,停止录入");
				break;
			}
		sum+=score;
		}
		avg= sum/5;
		System.out.println("平均分为"+avg);
	}
}//问题:输入负数时,结果会输出平均分
//解法二:
import java.util.Scanner;
public class Test6{
	public static void main(String[] args){
		
		Scanner scan = new  Scanner(System.in);
		double sum = 0;
		double avg = 0;
		int i = 1;
		for(;i<=5;i++){
			System.out.println("请输入第"+i+"门成绩");
			double score = scan.nextDouble();
			if(score<0){
				System.out.println("分数为负,停止录入");
				break;
			}
		sum+=score;
		}
		if(i==6){
		avg= sum/5;
		System.out.println("平均分为"+avg);
		}
	}
}//问题:for结构不完整
```​	


//解法三:
import java.util.Scanner;
public class Test6{
	public static void main(String[] args){
		
		Scanner scan = new  Scanner(System.in);
		double sum = 0;
		double avg = 0;
		boolean flag = true;
		
		for(int i = 1;i<=5;i++){
			System.out.println("请输入第"+i+"门成绩");
			double score = scan.nextDouble();
			if(score<0){
				flag = false;
				System.out.println("分数为负,停止录入");
				break;
			}
		sum+=score;
		}
		if(flag){
		avg= sum/5;
		System.out.println("平均分为"+avg);
		}
	}
}//缺点:代码块功能未分开
//解法四:
import java.util.Scanner;
public class Test6{
	public static void main(String[] args){
		
		Scanner scan = new  Scanner(System.in);
		double sum = 0;
		double avg = 0;
		boolean flag = true;
		
		for(int i = 1;i<=5;i++){
			System.out.println("请输入第"+i+"门成绩");
			double score = scan.nextDouble();
			if(score<0){
				flag = false;
			
				break;
			}
		sum+=score;
		}
		
		if(flag){
		avg= sum/5;
		System.out.println("平均分为"+avg);
		}else{	System.out.println("分数为负,停止录入");}
	}
}//最优
  1. continue

3.1 含义:作用于循环,表示跳过循环体剩余的部分,进入到下一次循环

3.2 做实验

while(true){
    System.out.println("111");
    System.out.println("222");
    if(true){
   			 continue;
	}
	System.out.prinln("333");
}

3.3 案例:

​ 循环录入Java课5名学生的成绩,统计分数大于等于 80分的学生比例。

//解决方法一:
import java.util.Scanner;
public class Test9{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int count = 0;//记录大于等于80学生的个数
			for(int i=1;i<=5;i++){
				System.out.println("请输入第"+i+"名同学的分数:");
				double score = scan.nextDouble();
				if(score>=80){
					count++;
			}
		}
		double proportion=count/5.0*100;
		System.out.println("统计分数大于等于80分的学生比例为"+proportion+"%");
	}
}
//解决方法二:
import java.util.Scanner;
public class Test9{
	public static void main(String[] args){ 
		
		Scanner scan = new Scanner(System.in);
		int count = 0;//记录成绩大于等于80学生的个数
		for(int i =1;i<=5;i++){
			System.out.println("请输入第"+i+"学生分数");
			double score = scan.nextDouble();
			if(score<80){
				continue;
			}
			count++;
		}
		double proportion = count/5.0*100;
		System.out.println("统计分数大于等于80分的学生比例为"+proportion+"%");
	}
	
}
  1. ​ return
    4.1 含义:作用于方法里,表示结束当前方法
    4.2 做实验
public class Test10{
	public static void main(String[] args){
		System.out.println("111");
		System.out.println("222");
		if(true){
			return;
		}
		System.out.println("333");
	}
}
  1. label
    5.1 给循环取名字(做标记)
public class Test11{
	pubblic static void main(String[] args){
		for(int i = 1;i<=5;i++){
			//面试题:以下代码执行结果是什么?
		//答:循环5遍
		https://www.baidu.com/
			System.out.println("好好学习");
		}
	}
}
/*结果是:
好好学习
好好学习
好好学习
好好学习
好好学习

ps://www.baidu.com/这段相当于注释,在jvm中不被识别,
而在JVM中相当于https:System.out.println("好好学习");
http:是label
*/

5.2 需求:嵌套for循环,外层循环5次,内层循环3次, 当外层循环到第2次,在内层循环中结束掉外层循环

	public static void main(String[] args){
		
		a:for(int i = 1;i<=5;i++){
			for(int j = 1;j<=3;j++){
				System.out.println(i + " -- " + j);
				if(i == 2){
					break a;//跳出指定的外层循环
				}
			}
		}
		
	}
}
  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值