这是我的代码,但我不得不承认我已经变得有点代码盲目,似乎无法看到问题,尽管我觉得这很容易。任何帮助将非常感激。提前谢谢。
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);
答案 0 :(得分: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
时出现特殊情况,输出将为:
Before: 1 After: 1 Before: 2 After: 2 Before: 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
答案 1 :(得分:0)
考虑使用break语句。