-5

这是我拥有的代码,但我不得不承认我已经变得有点代码盲,并且似乎看不到问题,尽管我觉得这很容易。任何帮助将非常感激。先感谢您。

   do{
        System.out.println("Command:");
        scan = new Scanner (System.in);

        String line;                        

        line = scan.nextLine();

        String[]SplitUpText;

        SplitUpText=line.split(" ");

        Command = SplitUpText[0];

        int param1=-1, param2=-1;

        if (Command.compareTo("move")==0)
        {
            if (SplitUpText.length>1)
            {
                param1=Integer.parseInt(SplitUpText[1]);
                if(SplitUpText.length>2)
                {
                    param2=Integer.parseInt(SplitUpText[2]);
                }
            }g.moveTo (param1, param2);


        }else if(Command.compareTo("circle")==0){

            if (SplitUpText.length>1)
            {
                param1=Integer.parseInt(SplitUpText[1]);
            }g.circle (param1);
        }else if(Command.compareTo("line")==0){
            if (SplitUpText.length>1)
            {
                param1=Integer.parseInt(SplitUpText[1]);
                if(SplitUpText.length>2)
                {
                    param2=Integer.parseInt(SplitUpText[2]);
                }
            }g.lineTo (param1, param2);
        } else {
            System.out.println("Invalid Command");
        }

    } while (Command.compareTo ("end")!=0);
4

2 回答 2

2

通常最好的做法是避免它(通过向while表达式添加条件),但如果你想提前结束循环,你可以使用break;

这是一个更简单的例子:

int i;

i = 0;
do {
    ++i;
    System.out.println("Before: " + i);
    if (someSpecialCondition) {
        break;
    }
    System.out.println("After: " + i);
}
while (i < 5);

假设特殊情况发生在i刚刚成为时3,输出将是:

之前:1
之后:1
之前:2
之后:2
之前:3

请注意如何break终止循环。它可以用于所有类型的循环(do..while,while和两种循环for)。

如果您有嵌套循环并且需要从内部循环中中断外部循环,您可能应该将该代码重构为子方法。但是,如果您不想重构,可以使用定向 break

int i, j;

outerLoop: for (i = 0; i < 5; ++i) {
    for (j = 0; j < 5; ++j) {
        if (i == 2 && j == 2) {
            break outerLoop;
        }
    }
}

在那里,outerLoop标记外循环,并break outerLoop导致内循环和外循环都终止。但是,如果你开始这样做,那么可能是重构的时候了。

更多来自 JLS:http ://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.15

于 2012-12-05T12:48:35.533 回答
0

考虑使用 break 语句。

于 2012-12-05T12:49:11.600 回答