2016-02-18 3 views
-1

Я получаю ошибку "неопознанный ярлык", вот мой код:Почему я получаю неопознанный ярлык? (Java/Android)

if (this.prevTime > 0L) 
    { 
     int i = (int)(1.0E-06D * (System.nanoTime() - this.prevTime)); 
     if (i >= 2000) 

      break label76;//unidentified label 
     j = 3; 
     if (j > 0) 
      break label56;//unidentified label 
     this.taps[0] = i; 
    } 

Я также попытался:

if (this.prevTime > 0L) 
    { 
     int i = (int)(1.0E-06D * (System.nanoTime() - this.prevTime)); 
     label76: 
     if (i >= 2000) 
      break label76;//'break' statement unnecessary 
     j = 3; 
     label56: 
     if (j > 0) 
      break label56;//'break' statement unnecessary 
     this.taps[0] = i; 
    } 

, но тогда я получаю ('перерыв' заявление ненужными).

+1

этикетки должны быть видны в том же объеме, чтобы быть в состоянии 'break' /' goto' их: / – Shark

ответ

1
  • 1-й случай: вы не объявляете этикетки.
  • второй случай: метка в рамках перерыва, так что ненужно

Этикетки должны быть помещены в одну линию, что имеет смысл и когда break утверждение не достаточно.

Конечно, вы можете обратиться к documentation для получения дополнительной информации:

непомеченной оператор пролом завершает самый внутренний переключатель, ибо, в то время как, или делать-то время как заявление, но меченого перерыв завершает внешнее заявление.

Посмотрите на этот пример: Следующая программа, BreakWithLabelDemo, использует вложенные for петли для поиска значения в двумерном массиве. Когда значение найдено, меченый break завершает внешнюю for петлю (с надписью «Поиск»):

class BreakWithLabelDemo { 
    public static void main(String[] args) { 

     int[][] arrayOfInts = { 
      { 32, 87, 3, 589 }, 
      { 12, 1076, 2000, 8 }, 
      { 622, 127, 77, 955 } 
     }; 
     int searchfor = 12; 

     int i; 
     int j = 0; 
     boolean foundIt = false; 

    search: // <-----------------------------------------------------------* 
     for (i = 0; i < arrayOfInts.length; i++) { //      * 
      for (j = 0; j < arrayOfInts[i].length; j++) { //    * 
       if (arrayOfInts[i][j] == searchfor) { //     * 
        foundIt = true; //         * 
        break search; // -------------------------------------* 
       } 
      } 
     } 

     if (foundIt) { 
      System.out.println("Found " + searchfor + " at " + i + ", " + j); 
     } else { 
      System.out.println(searchfor + " not in the array"); 
     } 
    } 
} 
Смежные вопросы