2015-06-15 5 views
0

Я пытаюсь написать простую функцию для печати сообщения каждые 5th или 10th итерации for loop. например:Результат печати на Java каждые 10-й итерации цикла for

В этом коде я хочу напечатать i каждые десятые итерации:

private void calc() { 
    int broadcast_by_percent = 100/10; 
    int calculate = 0; 
    for (int i = 0; i <= 100; i++) { 
     if (i == calculate) { 
      calculate = broadcast_by_percent + 10; 
      Log.e("i:= ", i + ""); 
     } 
    } 
} 
+0

Каждые 5 или каждые 10? – Maroun

+0

На самом деле вам не нужно использовать оператор if для этого, вам просто нужно пройти шаг в цикле for, взгляните на мой EDIT. –

+0

@MarounMaroun Я думаю, что это один из них. 10. Я думаю, что OP говорил, что он делал 2 разных метода. – Ungeheuer

ответ

2

Зачем использовать if statement, пока вы можете сделать это, просто используя for loop с определенным номером step, вот код:

int step = 10; 
for (int i = 0; i <= 100; i+=step) { 
    Log.e("i:= ", i + ""); 
} 

Инструкция будет действовать только для каждого индекса 10th, и вы можете указать необходимый вам шаг.

Вот DEMO.

EDIT:

И чтобы убедиться, что вы берете только кратные ваш step (избежать нуля) начать цикл из этого step:

int step = 10; 
for (int i = step; i <= 100; i+=step) { 
    Log.e("i:= ", i + ""); 
} 

Обратите внимание на i=step здесь.

3

Вы можете использовать оператор %, чтобы проверить, что переменная цикла является кратно 10:

int stepSize = 10; 
for (int i = 0; i <= 100; i++) { 
    if (i % stepSize == 0) { 
     Log.e("i:= ", i + ""); 
    } 
} 
+0

спасибо, сэр. '10' является образцом, и это может быть' 5' или '10' или' 15' ... –

+1

@mahdipishguy да, конечно. Проверьте мое редактирование, где я переместил его на новую переменную ('stepSize'). Вы можете присвоить любое значение, которое вы хотите. – Mureinik

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