问答详情
源自:1-9 经验总结

求教我这段代码为啥每次成功执行case=1之后还是会输出,break没起作用呢

public static void main(String[] args) {

// TODO Auto-generated method stub

String[] books ={"高数","语文 ","数学","政治","地理","汇编语言","C语言","遥感"};

int index; 

while (true){

System.out.println("输入命令行:1-按书名查找;2-按序号查找");

String book;

//此时需要返回获取到的输入的值,若返回的值为整型则执行判断

try{index = Book.input();

//注意switch的用法

switch(index) {

case 1:

System.out.println("请输入图书名:");

//此时需要编写按书名查找的方法,并返回书名

book = Book.bookname();

System.out.println("book:"+ book);

break;

case 2:

book = Book.numbook();

System.out.println("book:"+ book);

break;

default:

System.out.println("第一次输入的整型输入有误,请重新开始。");

continue;

}

}catch (Exception bne){

//此处异常是由于图书不存在抛出来的

System.out.println(bne.getMessage());//获得抛出异常的文字信息

continue;//若检测到图书不存在这个异常,处理为重新执行While循环

}

}

}

http://img.mukewang.com/59b8caaa0001527003410112.jpg

提问者:慕粉3874958 2017-09-13 14:06

个回答

  • 精慕门114923
    2017-09-13 16:36:40

    while (true){......}

    break 只跳出了switch,不能跳出while死循环。

    所以“System.out.println("输入命令行:1-按书名查找;2-按序号查找");”仍然执行!

  • 地上爬出一棵鱼
    2017-09-13 16:05:46

    把default放在最后试试