2013-04-13 2 views
-2
private void printRandoms() { 
    int value; 
    for (int i = 2; i < 8; i = i + 2) { 
     value = (int) (Math.random() * 2 + 3); 
     System.out.print(value + " "); 
    } 
    System.out.println(); 
} 

Может кто-нибудь объяснить мне, почему есть 2 возможных выхода и почему они 3,3,4 и 4,3,4. А также что здесь означает i = i + 2?Java For loop output

+0

Если у вас есть отладчик, используйте его, чтобы остановить программу и изучить значение переменных. Или вы можете использовать 'System.out.println (« i = «+ i») и аналогичные инструкции для вывода промежуточных значений. –

ответ

3

Math.random() Производит случайное число с плавающей запятой между 0 и 1 (не включая 1). Вы умножаете это на 2, так что теперь значение находится между 0 и 2 (не включая 2). Затем вы добавляете 3, поэтому значение находится между 3 и 5 (не включая 5). (int) литой теряет десятичную информацию, так что возможности остаются 3 и 4.

В i = i + 2 средства установлены i к выражению i + 2, т.е. он добавляет 2 к i.

+0

Можете ли вы объяснить, почему это даст мне результат 3 3 4 и 4 3 4? –

+0

нравится, почему есть 3 числа в каждом возможном выходе? –

+0

Значения 'i', которые пересекаются, являются только 2, 4 и 6. Когда' i' достигает 8, условие цикла 'for' равно' false', и цикл завершается. – rgettman