java-8 跳转控制语句

跳转控制语句存在的意义:Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了breakcontinuereturn实现控制语句的跳转和中断

一 .break中断

import java.util.Scanner;
public class Demo{
    public static void main(String[] args){
        //键盘录入计算器,程序一直运行,直到手动停(获取到某个信号才停)
        //创建Scanner对象
        Scanner sc = new Scanner(System.in);
        boolean del = true ;
        while(del){
            System.out.println("请输入数字一");
            int i = sc.nextInt();
            System.out.println("请输入运算符+-*/%");
            String zifu = sc.next();
            System.out.println("请输入数字二");
            int j = sc.nextInt();
            boolean flag = false ;
            //判断输入的操作是否符合要求
            //比较两个字符串的值的时候,用字符串的方法equals方法,返回值类型是boolean类型
            if("+".equals(zifu)){
                flag = true;
            }else if("-".equals(zifu)){
                flag = true;
            }else if("*".equals(zifu)){
                flag = true;
            }
            else if("/".equals(zifu)){
                flag = true;
            }else if("%".equals(zifu)){
                flag = true;
            }else{
                System.out.println("操作有误");
            }

            //匹配对应的操作
            if(flag){
                switch (zifu){
                    case "+" :
                        System.out.println(i+"+"+j+"="+(i + j ));
                        break;
                    case "-" :
                        System.out.println(i+"-"+j+"="+(i - j ));
                        break;
                    case "*" :
                        System.out.println(i+"*"+j+"="+(i * j ));
                        break;
                    case "/" :
                        System.out.println(i+"/"+j+"="+(i / j ));
                        break;
                    case "%" :
                        System.out.println(i+"%"+j+"="+(i % j ));
                        break;
                    default:
                        System.out.println("操作错误");
                        break;
                }
            }
            //if-break手动退出while无限循环
            System.out.println("还要继续玩吗继续输入Y,结束输入N");
            String single = sc.next();
            if("N".equals(single)){
                del = false;
                System.out.println("欢迎使用本程序");
                break;
            }
        }

    }
}

  1.break的使用场景:
    1.1 在选择结构switch语句中
    1.2 在循环语句中
    1.3 离开使用场景的存在是没有意义的

import java.util.Scanner;
public class ControlDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //不能单独使用,需要作用与选择结果或者循环结构中
        //break;
        System.out.println("请输入数字1-7");
        int i = sc.nextInt();
        //使用switch语句实现需求
        switch (i){
            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.println("输入错误");
                    break;
        }

        //在循环语句中使用break
        System.out.println("在循环语句中使用break");
        for (int j=1 ; j<=10 ; j++){
            if(j==3){
                break;
            }
            System.out.println(j);
        }
    }
}

  2.break的作用:
    2.1跳出单层循环
    2.2跳出多层循环
    2.3带标签的跳出
    格式:标签名: 循环语句
    标签名要符合Java的命名规则

//跳出单层循环
//        for(int i=1;i<=9;i++){
//            for(int j=1;j<=i;j++){
//                if(j==4){
//                    break; //break如果存在多个循环中,跳出的是当前最近的那个循环或者选择结构
//                }
//                System.out.print(i+"*"+j+"="+(i*j)+"\t");
//            }
//            System.out.println();
//        }

        //跳出多层循环带标签的跳出
        //格式:标签名: 循环语句
        //break 标签名;
        wc:for(int i=1;i<=9;i++){
            nc:for(int j=1;j<=i;j++){
                if(j==4){
                    break wc; //break如果存在多个循环中,跳出的是当前最近的那个循环或者选择结构
                }
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }

二 、continue控制语句  

   2.1 continue的使用场景:在循环语句中,离开使用场景的存在是没有意义的

//continue语句
        //打印1-10 ,在3的时候continue
        for (int i = 1; i <= 10; i++) {
            if (i == 3) {
                continue;
            }
            System.out.println(i);//1245678910
        }

   2.2  continue的作用:跳过本次循环,但是循环继续
      2.3 单层循环对比break,总结两个的区别
        break 退出当前循环
        continue 退出本次循环
      2.4 可以带标签的使用

 

三、return语句:return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法

 //return关键字
        System.out.println("===改用return===============");
        for (int i = 1; i <= 10; i++) {
            if (i == 3) {
                return; //结束整个程序
            }
            System.out.println(i);
        }

 

posted @ 2021-09-22 11:30  艺术派大星  阅读(107)  评论(0)    收藏  举报
levels of contents