2014-11-21 3 views
-5
for (int i = 0; i < 150; i++) { 
     if (i % 13 == 0) { 
      System.out.println("#: " + i); 
     } 
    } 

Я только начал изучать Java вчера, и я застрял в заявлении для циклов. Я путаюсь частьЕсли инструкция внутри петель

if (i % 13 == 0) 

переменным я инициализируюсь нулевой INT I = 0 и если разделить ноль на 13 результате 0. Там нет никакого остатка. Я попробовал калькулятор. Но когда я запускаю программу. Я получаю результат как это, он продолжает добавлять 13, как?

#: 0 
#: 13 
#: 26 
#: 39 
#: 52 
#: 65 
#: 78 
#: 91 
#: 104 
#: 117 
#: 130 
#: 143 
+2

Ну, что такое remaind er, когда вы делите 13 на 13 (вторая строка на вашем выходе)? – markspace

+1

Ваша программа будет печатать i каждый раз, когда я делится на 13, каков ваш вопрос в точности? – luisluix

+1

что вы пытаетесь сделать? как вы думаете, 'i% 13' делает? – Kent

ответ

1

Результаты, которые вы видите все из чисел от 0 до 150 (который вы указывали на этой линии: for (int i = 0; i < 150; i++) {), которые являются кратными (не имеют остатка) от 13

1

Первый цикл добавляет 1 до int i для каждой итерации. Затем он проверяет, есть ли остаток при делении на 13:

(i % 13 == 0) 

Наконец, он будет печатать этот номер, если он не имеет остатка при делении на 13:

System.out.println("#: " + i); 

Так результатом является, по существу, все числа, которые кратно 13 между 0 и 150.

2

То, что вы видите, является правильным; это, кажется, добавляя 13 каждый раз, потому что ваш if заявление эффективно говоря, в простом английском языке:

дисплей значение I, когда 13 делится я равномерно (не оставляя без остатка)

Так действительно каждый из номеров вы видите водоразделы равномерно, не оставляя без остатка:

#: 0 // 0/13 = 0, no remainder 
#: 13 // 13/13 = 1, no remainder 
#: 26 // 26/13 = 2, no remainder 

и так далее ...

Смежные вопросы