java跳出死循环(会更新)

示例代码

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;
            }
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值