黑马程序员技术交流社区

标题: 关于结束while(true)循环的方法 [打印本页]

作者: 落星追恒    时间: 2016-3-17 20:10
标题: 关于结束while(true)循环的方法
//                使用循环控制菜单一直存在
                while(true) {
                        int index = sc.nextInt();
               
                        switch (index) {
                        case 1: ArrayTools.arrayReverse(arr);
                                        break;
                        case 2: ArrayTools.arrayFind(arr);
                                        break;
//                        这里我多次尝试使用return有结束循环和程序的效果,这是为什么?之前一直使用break不能结束,请问有别的方法退出这个循环吗?
                        case 3:        return;
                        }
                       
作者: ShallDoll    时间: 2016-3-17 20:57
方法1:在switch语句的外面再加一个break;
方法2:在while前面加上标签,break标签

作者: Andyhuai    时间: 2016-3-17 21:03
不是很明白,不过支持了!!
作者: youdang    时间: 2016-3-17 21:35
break只是退出一层,你有一个for循环,还有一个switch
作者: 陈文广    时间: 2016-3-17 22:04
可以这样, 在while() 前面定义一个boolean 类型的 变量 flag .boolean flag =true .在 case 3: 后面改变标记 flag=false; 然后在break; 就可以了.
作者: 陈文广    时间: 2016-3-17 22:06
当你键盘录入的数为3.的时候就会结束循环了.
作者: 落星追恒    时间: 2016-3-19 02:47
陈文广 发表于 2016-3-17 22:04
可以这样, 在while() 前面定义一个boolean 类型的 变量 flag .boolean flag =true .在 case 3: 后面改变标 ...

原来有这个方法 阿里嘎多!
作者: 就是我    时间: 2016-3-19 09:17
你的while语句是一个循环,break能跳出循环,但是break在switch中就是结束当前switch语句,你跳出switch后,你的break就用完了,你得在switch外面的 下面再加一个
或者也可以在内循环break 后面(你想退出while的case的那个break)加上标签  类似于 label之类的,并且在while上面也打上同样标签 label:要加上:
作者: ameanboy    时间: 2016-3-19 11:38
落星追恒 发表于 2016-3-19 02:47
原来有这个方法 阿里嘎多!

是的~相当于其他程序中的goto语句,不过一般来说是不太推荐使用的。。
作者: sky0202    时间: 2016-3-19 12:29
不理解,请详细的描述一下
作者: 赵国政    时间: 2016-3-19 12:37
来签到啦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2