Java для переменной цикла нет, где ссылаться - PullRequest
0 голосов
/ 13 июня 2018

Когда я прочитал книгу Head First Java, я увидел следующий код в главе Date.

Мой вопрос - цикл for, в цикле for {}: нет кода, использующего переменную "x ", так почему код используется для цикла здесь?Это что-нибудь значит?

import static java.lang.System.out;
class FullMoons{
    static int DAY_IM = 1000*60*60*24;
    public static void main(String[] args){
    Calendar c = Calendar.getInstance();
    c.set(2004,0,7,15,40);
    long day1 = c.getTimeInMillis();
    for(int x =0; x <60; x++){
      day1 += (DAY_IM * 29.52)
      c.setTimeInMillis(day1);
      out.println(String.format("full moon on %tc"),c)
      }
   }
}

Ответы [ 2 ]

0 голосов
/ 13 июня 2018
    for(int x =0; x <60; x++){
  day1 += (DAY_IM * 29.52)
  c.setTimeInMillis(day1);
  out.println(String.format("full moon on %tc"),c)
  }

Вы правы в том, что x никогда не используется внутри этого цикла, но это, по сути, означает, что

  • считать от 0 до 59 - int x =0; x <60;
  • выполнитьсодержимое этого цикла по одному разу для каждого числа
  • увеличивает счет на единицу каждый раз, когда вы заканчиваете выполнять его содержимое - x++

Однако вы также можете использовать переменную x внутриэтот цикл, если вы хотите, и это будет значение переменной в то время через цикл.
Может быть, легче понять, если бы он был вызван count?Например:

for(int count = 0; count < 60; count++){

}

Вы можете также использовать цикл while вместо этого, например:

 int count = 0;  
while (count < 60) {
    // loop content    
count++
}
0 голосов
/ 13 июня 2018
for(int x = 0; x < 60; x++){
      day1 += (DAY_IM * 29.52)
      c.setTimeInMillis(day1);
      out.println(String.format("full moon on %tc"),c)
}

Приведенный выше код означает: повторите код 60 раз внутри {...}.

...