我的switch语句中的一个案例不会结束

时间:2013-11-01 18:27:33

标签: java switch-statement

我只需要创建一个方法来检查三个整数是否相同,让用户告诉对象执行此方法,然后让用户请求另一个命令。当我把'c'(只有这种情况做这个,我有另一个逻辑相同的情况)时,它会做它应该做的但是它会尝试接受下一个输入并将其作为参数运行根据我的理解,已经执行过的方法。

    something=in.nextLine();
    commands=something.charAt(0);
    do{
        switch(commands){
            //Blah blah blah other commands
            case 'c':
                boolean yes=object.allTheSame(in.nextInt(),in.nextInt(),in.nextInt());
                System.out.println(yes);
                System.out.println("Please enter a command: ");
                something=in.nextLine();
            break;
        }
        commands=something.charAt(0);
    }while(commands!='q'); 

2 个答案:

答案 0 :(得分:1)

你在breaks the switch statement的休息时间而不是do-while循环。

(由于你的比较似乎微不足道,我认为使用传统if-else是更好的形式。)

答案 1 :(得分:0)

我不知道“Blah blah blah blah other commands”部分中的内容,但如果something的第一个字符不是c,那么commands显然永远不会改变。你可能想这样做:

something=in.nextLine();
int pos = 0;
commands=something.charAt(pos++);
do{
    switch(commands){
        //Blah blah blah other commands
        case 'c':
            boolean yes=object.allTheSame(in.nextInt(),in.nextInt(),in.nextInt());
            System.out.println(yes);
            System.out.println("Please enter a command: ");
            something=in.nextLine();
        break;
    }
    commands=something.charAt(pos++);
}while(commands!='q');