示例代码
break和continue的介绍
break 语句很重要,用得非常多,初学者一定要掌握。continue 语句虽然没有 break 语句用得多,但也经常用到,而且不可或缺,需要用到 continue 的时候其他语句是无法替代的。
前面已经介绍过 break 语句,**它不仅可以跳出“循环体”,还可以跳出 switch。**但事实上,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。
不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。
同样,在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见。
continue 的用法十分简单,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。
第一种:
public static void studentServer(String uname) {
UserDao_Imp userDao_Imp = new UserDao_Imp();
while (true) {
// 展示学生管理的页面
int item = View.studentMenuView();// 选择操作
if (item == 0) {
// 第一种方法:
System.exit(-1);// 终止程序
} else if (item == 1) {
String upass = View.alterPassView();
if (userDao_Imp.update(new User(uname, upass))) {
System.out.println("修改密码成功了");
break;
} else {
System.out.println("修改密码失败了");
break;
}
}
}
}
while (true) {
// 如何跳出死循环,解释:因为有switch所以break只可以跳过switch,还是在死循环里面
// 给用户展示登录页面
User user = View.indexView();
UserDao_Imp userDao_Imp = new UserDao_Imp();
int type = userDao_Imp.login(user);
// if (type == 1) {
// View.managerMenuView();
// } else if (type == 2) {
// View.studentMenuView();
// }
switch (type) {
case -1:
System.out.println("输入有误,请重新输入!");
break;
case 1:
System.out.println("恭喜管理员登录成功");
control.managerServer();
break;
case 2:
System.out.println("恭喜学生登录成功");
control.studentServer(user.getUname());
break;
default:
break;// 返回到jvm虚拟机里面
}
}
和下面的代码对比:
package com.gp.breakTest;
import java.util.Scanner;
public class Loop {
public static void main(String[] args) {
while (true) {
System.out.println("老婆,你爱我吗?");
String s = new Scanner(System.in).nextLine();
if (s.indexOf("yes") != -1)
break;
}
System.out.println("老婆很爱我\n完成测试");
}
}
输出:
老婆,你爱我吗?
yes
老婆很爱我
完成测试
第二种:
public static void managerServer(){
boolean flag=true;//循环标志位
while (flag){
int choice = View.managerMenuView();//选择操作
switch (choice){
case 0:
System.out.println("退出系统,再见!");
// 第二种:使用标志位
flag=false;
break;
case 1:
User newUser = View.addMenuView();
if (userQu.insert(newUser)){
System.out.println("恭喜添加成功!");
}else {
System.out.println("插入失败");
//
}
break;
case 2:
String uname = View.deleteMenuView();
if (userQu.delete(uname)){
System.out.println("恭喜删除成功");
}else {
System.out.println("删除失败");
//
}
break;
case 3:
User user = View.updateMenuView();
if (userQu.update(user)){
System.out.println("恭喜修改成功!");
}else {
System.out.println("修改失败");
//
}
break;
case 4:
String uname2 = View.deleteMenuView();
User selectUser = userQu.select(uname2);
if (selectUser!=null){
System.out.println("您查询的信息如下:");
System.out.printf("姓名:%s 密码:%s 用户类型:%d\n",
selectUser.getUname(),selectUser.getUpass(),selectUser.getType());
}else {
System.out.println("查询失败,查无此人");
}
break;
default:
break;
}
}
}