2016-11-12 5 views
-1

Я хочу напечатать 10 случайных чисел от -100 до 100, но мой код ниже всегда печатает отрицательное число. На это я не получил ответа. Как это сделать?Я хочу напечатать случайные числа от -100 до 100

import java.util.Random; 
public class VectorAndList { 
public static void main(String arg[]){ 
    Random random = new Random(); 
    int number ; 
    for(int i=0;i<10;i++) 
    System.out.println(number = random.nextInt(100)+ (-100)) ; 
} 
} 

ответ

1

Проблема заключается в том, что вы вычисляете случайное число между 100, тогда вы минус (100), который означает, что вы получили только отрицательные значения.

так измениться, как этот

Random random = new Random(); 
int number ; 
for(int i=0;i<10;i++) 
System.out.println(number = random.nextInt(201)-100) ; 
+0

В этом будет печатать только положительные числа, диапазон от -100 до 100 – Saravana

+0

нет .. на основе по возможности это дает отрицательный случай. Например, случайное число равно 5 означает 5-100, поэтому результат будет -95 – sasikumar

+0

да, правильно, это будет – Saravana

1

Сформировать номер 0-100 и флип знак случайно

Random rand = new Random(); 
int no = rand.nextBoolean() ? rand.nextInt(100) : rand.nextInt(100) * -1; 
System.out.println(no); 

в качестве альтернативы вы можете использовать ThreadLocalRandom с отрицательным диапазоном, а

ThreadLocalRandom random = ThreadLocalRandom.current(); 
for (int i = 0; i < 10; i++) { 
    int no = random.nextInt(-100, 100); 
    System.out.println(no); 
} 
Смежные вопросы