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