2015-11-19 3 views
1

ОК, поэтому мне нужно сгенерировать 7 случайных чисел от 1 до 100 и напечатать максимум на экране. Однако, когда я скомпилировать этот код:java error: double не может быть разыменован

public class ArrayofTemperatures 
{ 
    public static void main(String[] args) 
    { 

     double [] temp = new double [7]; 
     int index; 
     double max; 
     double random = Math.random() * 100 + 1; 

     temp[0] = random.nextDouble(); 
     max = temp[0]; 
     for (index = 1; index < temp.length; index++) 
     { 
     temp[index] = random.nextDouble(); 
     if (temp[index] > max) 
      max = temp[index]; 

     } 

     System.out.println("The highest score is: " + max); 
    } 
} 

я получаю эти две ошибки:

ArrayofTemperatures.java:12: error: double cannot be dereferenced temp[0] = random.nextDouble();

ArrayofTemperatures.java:16: error: double cannot be dereferenced temp[index] = random.nextDouble();

ответ

2

Вы запутались.

Это утверждение создает единую double значение:

double random = Math.random() * 100 + 1; 

Если вы хотите генератор случайных чисел, использование

Random random = new Random(); 

Тогда random.nextDouble() произведет число между 0.0 и 1.0.

Альтернативой является замена вызовов на random.nextDouble() с помощью Math.random().

+0

ОК спасибо! я избавился от ошибки, однако число будет генерировать только от 0.0 до 1.0, как вы сказали. как я могу получить число для генерации от 1 до 100, если вы не возражаете ответить на другой вопрос? –

+0

@ValRadcliffe Вы можете написать метод, который возвращает 'Math.random() * 100 + 1' или' random.nextDouble() * 100 + 1' (в зависимости от того, хотите ли вы использовать статический метод 'Math.random()' или метод экземпляра класса «Random»). – Eran

+0

спасибо снова !! im, принимая класс java для начинающих и его довольно сложно иногда! –

0

random является примитивный тип double, и не имеет поэтому нет методов, также не nextDouble.

Предполагаете, вы хотели использовать класс Random.

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