[JavaSE] 特殊的流程控制语句【break】【continue】【return】【lable】—Day10

目录

1.break

​2.continue

3.return

4.lable

总结:


1.break


作用:作用在循环中,表示跳出整个循环语句
例子:          

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

运行结果:


案例:循环录入小邓同学5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示

Scanner scan = new Scanner(System.in);
        
   double sum = 0;
                    
   boolean flag = true;//true-正常录入 false-非正常录入
   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){
      double avg = sum/5;
      System.out.println("平均分为:" + avg);
      }else{
       System.out.println("分数录入为负,停止录入");
    }
                    

运行结果:


2.continue


作用:作用在循环中,表示跳过剩余循环体
举例:                  

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

运行结果:


                        
案例:循环录入Java课5名学生的成绩,统计分数大于等于80分的学生比例。
解决方案一:                

  Scanner scan = new Scanner(System.in);
        
  int num = 0;//记录分数大于等于80分的学生人数
  for(int i = 1;i<=5;i++){
    System.out.println("请输入第" + i + "名学生的成绩:");
    double score = scan.nextDouble();
    if(score >= 80){
       num++;
     }
  }
  System.out.println("大于等于80分学生的比例为:" + (num/5.0*100) + "%");


解决方案二:
                  

  Scanner scan = new Scanner(System.in);
        
  int num = 0;//记录分数大于等于80分的学生人数
  for(int i = 1;i<=5;i++){
       System.out.println("请输入第" + i + "名学生的成绩:");
       double score = scan.nextDouble();
       if(score < 80){
           continue;
        }
           num++;
   }
  System.out.println("大于等于80分学生的比例为:" + (num/5.0*100) + "%");

         
3.return


作用:单独编写,表示结束当前方法               

 System.out.println("111");
 System.out.println("222");
 if(true){
    return;
  }
 System.out.println("333");
 System.out.println("444");

4.lable

 Java中,一般通过break和continue只能影响一层循环,而通过声明Label配合continue Label以及break Label可以影响到多层循环          
例1:嵌套for循环,外层循环5次,内层循环3次,当外层循环到第3次时,在内层循环中结束掉外层循环     

a:for(int i = 1;i<=5;i++){
      for(int j = 1;j<=3;j++){
       System.out.println(i + " -- " + j);
       if(i == 3){
              break a;
        }
       }
}

运行结果:

例2:

for(int i= 0; i < 3; i++){
            System.out.println("outer print: index  ["+ i+"]");
            for (int j = 0; j<3; j++){
                if (j == 1) {
                    continue;
                }
                System.out.println("inner print:  (" + j+")" );
            }
        }
        System.out.println("========================");
        outer:
        for (int i = 0 ; i<3 ; i++){
            System.out.println("outer print: index  ["+i+"]");
            for (int j = 0 ; j<3; j++){
              	if (i == 2){
                    break outer;
                }
                if (j == 1) {
                    continue outer;
                }
                System.out.println("inner print:  ("+j+")");
            }
        }

运行结果:

不难看出,continue Labe和break Label直接影响到了外层循环。

总结:

  1. 使用标签的唯一理由是:跳出嵌套循环。
  2. 标签定义在任何语句前基本上都是合法的,但只有定义在循环语句前才可能是可用的。
  3. 标签名不必是唯一的,只要不在嵌套循环的内外层上定义相同标签即可。
  4. break只能用于switch语句和循环语句中,continue 只能用于循环语句中。二者功能类似,但continue是终止本次循环,break是终止本层循环
  5. break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。

  6. 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。

  7. 很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它。但使程序容易出错。Java中的break和continue是不同于goto的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaSEJava Standard Edition)是Java平台的标准版,提供了Java语言的核心库和基础功能。下面是一些JavaSE基础知识的介绍: 1. Java语言特性:Java是一种面向对象的编程语言,具有简单、可移植、安全、高性能等特点。它支持自动内存管理(垃圾回收)、异常处理、多线程等特性。 2. 数据类型:Java提供了基本数据类型(如整型、浮点型、字符型、布尔型)和引用数据类型(如类、接口、数组)。可以使用变量来存储和操作数据。 3. 控制流程Java提供了条件语句(如if-else、switch)、循环语句(如for、while、do-while)和跳转语句(如breakcontinue)来控制程序的执行流程。 4. 类和对象:Java是一种面向对象的语言,所有的代码都必须定义在类中。类是对象的模板,对象是类的实例。可以使用类来创建对象,并通过对象调用类中的方法和访问类中的属性。 5. 继承和多态:Java支持继承机制,一个类可以继承另一个类的属性和方法。通过继承可以实现代码的重用和扩展。多态是指同一个方法在不同的对象上有不同的行为。可以通过方法重写和方法重载来实现多态。 6. 异常处理:Java提供了异常处理机制,可以捕获和处理程序中的异常。通过try-catch-finally语句块可以捕获异常并进行相应的处理,保证程序的稳定性和可靠性。 7. 输入输出:Java提供了丰富的输入输出功能,可以通过标准输入输出、文件操作、网络通信等方式进行数据的输入和输出。 8. 集合框架:Java提供了一套集合框架,包括List、Set、Map等接口和实现类,用于存储和操作数据集合。集合框架提供了高效的数据结构和算法,方便开发者进行数据处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

简单^不简单

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

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

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

打赏作者

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

抵扣说明:

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

余额充值