我在android中的一个编程语句中遇到了麻烦,它一直给我错误标签230丢失,但我不知道出错了什么。任何帮助将不胜感激,谢谢。
这是以下计划;
public static void calculateGPA()
{
totalHours = 0.0D;
totalValue = 0.0D;
int i = 0;
if (i >= 8)
{
Object[] arrayOfObject = new Object[1];
arrayOfObject[0] = Double.valueOf(totalValue / totalHours);
GPA = String.format("%.2f", arrayOfObject);
if (!GPA.equals("NaN"))
break label230;
GPA = "0.00";
}
while (true)
{
return;
int j = collegeGradeSpinner[i].getSelectedItemPosition();
int k = collegeHourSpinner[i].getSelectedItemPosition();
if ((j != 0) && (k != 0))
switch (j)
{
default:
case 1:
case 2:
case 3:
case 4:
case 5:
}
while (true)
{
i++;
break;
totalValue += k * 4;
totalHours += k;
continue;
totalValue += k * 3;
totalHours += k;
continue;
totalValue += k * 2;
totalHours += k;
continue;
totalValue += k * 1;
totalHours += k;
continue;
totalHours += k;
}
label230: gpaTextView.setText(GPA);
}
}
答案 0 :(得分:0)
由于语言结构,Java没有直接转到。如果有的话,直接的东西很容易变得难以理解和无法维护。
您可以使用for或while循环将标签设置为labelname:for(...
,并使用break labelname
或continue labelname
分别退出或启动循环的下一次迭代。
答案 1 :(得分:0)
break
只能退出您当前所在的循环。它不能用于从A点到任意点B。
答案 2 :(得分:0)
在Java中,您不能将break
用作goto
,只需跳转到任何地方,尤其不要跳转到循环中。
答案 3 :(得分:0)
虽然这不是一个好习惯,但你可以使用java块来实现你的需求,如下所示
label230: {
if(i >= 8) {
.....
if(!GPA.equls("NaN") {
break label230;/* Once you break here, it will take you out of the block*/
}
....
while(true) {
....
}
}
}// label230 block ends.
gpaTextView.setText(GPA);