返回和中断语句错误

时间:2013-11-25 11:29:08

标签: java android return break

我在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);
    }
  }

4 个答案:

答案 0 :(得分:0)

由于语言结构,Java没有直接转到。如果有的话,直接的东西很容易变得难以理解和无法维护。

您可以使用for或while循环将标签设置为labelname:for(...,并使用break labelnamecontinue 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);