Мне нужна помощь в отладке следующей java-программы.Приоритет Java по модулю оператора
import java.util.Random;
public class NextInt
{
public static void main(String[] args)
{
for(int i=0; i<20; ++i)
{
if(i>0)
System.out.print(", ");
int x = (new Random()).nextInt();
System.out.print(x % 2 + 1);
}
System.out.println("");
}
}
Выведет (к примеру):
0, 1, 0, 1, 2, 2, 2, 0, 0, 1, 1, 1, 2, 0, 1, 1, 1, 1, 2, 1
Я думаю, что выход должен быть, содержащий только те, и двойки! Если мы думаем об интерпретации x % (2+1)
, то вывод правильный. Является ли оператор modulo действительно более слабым, чем добавление? Java tutorial говорит, что нет. Или есть что-то еще, что мне не хватает?
Правда это на самом деле не имеет значения для этого примера, но для хорошей практики вы должны, как правило повторно использовать один и тот же случайный объект а не постоянно создавать и отбрасывать. – berry120
Да. Исходный код генерировал только одно случайное число, которое создавало сумасшедшие значения. Я старался не менять многое, поэтому я просто скопировал, что там есть. :-) Благодаря! – Notinlist