2013-07-23 4 views
0

Я получаю общий смысл для циклов. Я хочу знать, как добавить в переменную инициализацию две переменные. Я также хочу считать счетчик и случайным одновременно. Я хочу, чтобы он печатался случайным образом, но не печатал 30 из того же номераРекомендации для программ с петлями

public class forLoop { 
    public static void main(String[] args) { 
    int random = (int) (Math.random() *50) +25; 
    for(int counter = 0; counter < 30; counter++){ 
     System.out.println(random); 
    } 
    } 
} 
+1

Вместо того, чтобы задавать этот вопрос, вы должны спросить себя: «Что делает моя программа?» Он генерирует псевдослучайное число и печатает его 30 раз. Как заставить его печатать случайное число 30 раз? Создайте номер и распечатайте его, повторите все это 30 раз. – Dariusz

+0

Вы также должны посмотреть на это: http://stackoverflow.com/questions/738629/math-random-versus-random-nextintint –

ответ

4

Вы генерируете случайное число за пределами своего цикла. Поэтому он будет существовать как одно и то же число каждый раз. Решение состоит в том, чтобы переместить определение внутри цикла.

public static void main(String[] args) { 
    for(int counter = 0; counter < 30; counter++){ 
     int random = (int) (Math.random() *50) +25; 
     System.out.println(random); 
    } 
} 

Таким образом, каждый раз через петлю (30 итераций), ваш код будет (1) сгенерировать случайное число и (2) напечатать этот номер.

+0

Так что мне не нужно будет добавлять случайную переменную? – Bill

+0

Что значит добавить, @Bill? – Kon

+0

Это не относится к этому, в частности, сейчас, но только для будущего я мог бы использовать две переменные в цикле for? – Bill

1

random получает значение случайное целое число до начала цикла. Вы не определяете random как (int) (Math.random() *50) +25, а скорее выполняете это и устанавливаете random.

Цикл затем распечатывает одно и то же каждый раз. Если вы хотите новый random каждый раз, вам нужно будет переместить этот оператор внутри цикла.

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