如何跳出内循环执行外循环?

如何跳出内循环执行外循环?

import java.util.Scanner;


public class TestDemo {

//主菜单选择显示项

public void showMainChioce() {

System.out.println("*************************");

System.out.println("        ***主菜单***      ");

System.out.println("        1--商品管理       ");

System.out.println("        2--购物车         ");

System.out.println("        0--退出           ");

System.out.println("*************************");

}

//商品管理菜单选择显示项

public void showGoodsChioce() {

System.out.println("**********************************");

System.out.println("        ***商品管理***      ");

System.out.println("        1--商品信息导入       ");

System.out.println("        2--显示所有商品信息         ");

System.out.println("        9--返回上级菜单           ");

System.out.println("***********************************");

}

//商品管理信息的选择

public void goodsChioce() {

showGoodsChioce();

System.out.println("请输入对应数字对商品进行管理:");

Scanner sc = new Scanner(System.in);

while(true) {

switch(sc.next()){

case "1":

System.out.println("选择了第一项");

break;

case "2":

System.out.println("选择了第二项");

break;

case "9":

showMainChioce();

break;

default:

System.out.println("输入错误!请重新选择!");

goodsChioce();

}

}

}

public static void main(String[] args) {

//根据需求设计完成主流程实现

TestDemo td = new TestDemo();

td.showMainChioce();

System.out.println("请输入对应数字进行操作:");

Scanner scanner = new Scanner(System.in);

while(true) {

switch(scanner.next()) {

case "1":

td.goodsChioce();

break;

case "2":

System.out.println("你选择了2--购物车");

break;

case "0":

System.out.println("你选择了0--退出");

System.exit(0);

break;

default:

System.out.println("输入错误!请重新选择!");

td.showMainChioce();

}

}

}

我的循环从商品管理返回上一级菜单的时候,循环还在商品管理的循环中

正在回答

登陆购买课程后可参与讨论,去登陆

2回答
同学可以给每个层循环都设置一个布尔变量,控制该变量跳出循环。
                //设置外层循环变量
        boolean flag1 = true;	
		while (flag1) {
			//主菜单调用
			//int n = sc.nextInt();
			switch (n) {
			case 1:
				//设置内层循环变量
				boolean flag2 = true;			
				while (flag2) {
					//商品管理菜单调用
					n = sc.nextInt();
					
					switch (n) {
					case 1:
						//导入。。
						break;
					。。。。
					case 9:
						//使其跳出循环
						flag2 = false;
						break;
					default:
						//错误提示
					}
				}
				break;
			case 2:
				//设置内层循环变量
				boolean flag3 = true;
				while (flag3) {
					//购物车菜单调用
					n = sc.nextInt();
					
					switch (n) {
					case 1:
						。。。。
					case 9:
						//跳出内层循环
						flag3 = false;
						break;
					
					}
				}
				break;
			case 0:
				。。。。
				break;
			
			}
		}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • Stone_He 提问者 #1
    把break改成return也可以跳出循环,这样可以不?
    2018-08-24 13:34:39
好帮手慕雪 2018-08-24 10:26:02

http://img1.sycdn.imooc.com//climg/5b7f6c820001a46404520534.jpg

这就是用你代码运行的,“我的循环从商品管理返回上一级菜单的时候,循环还在商品管理的循环中”没出现你描述的情况呀。

  • 提问者 Stone_He #1
    如果红框后面选择2,是要出现外循环中“你选择了2--购物车”,但是现在还是出现内循环中的“选择了第二项”。循环没有跳出内循环
    2018-08-24 10:36:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师