2015-12-06 3 views
0

Я создаю класс, который в основном практикуется с использованием массива в Java и программировании, и мне нужно сделать массив из 40 случайных чисел между числом 1-6 (включительно). Однако мой код не будет компилироваться из-за ошибки «неожиданного возврата». Как я могу это исправить? код ниже:Неожиданная ошибка возвращаемого значения - массивы

public class LongestRun 
{ 
    public static void main(String[] args) 
    { 
     System.out.print("\f"); 

     int[] values = new int[40]; 
     int randNum = (int)(Math.random() * (7 - 1) + 1); 
     int count ; 

     for (int i = 0; i < values.length; i++) 
     { 
      values[i] = randNum; 
      return values[i]; 
     } 


    }} 
+0

Вы возвращаетесь в циферблат 'for', и main ничего не нужно возвращать. –

+0

Благодарим за редактирование. Также я был смущен, потому что я поклялся, что можно вернуться в цикл for. – Makaio

+0

Вы действительно можете, но почему бы вам? Представьте, что вы хотите, чтобы цикл for повторялся 10 раз, если вы вернетесь после каждой итерации, вы получите это для цикла в первый раз, когда он итерации, а не идеальный. –

ответ

1

main не имеет возвращаемого значения (void), так что вы не можете вернуть значение из него (return заявление). Вероятно, вы захотите получить результат print().

Кроме того, чтобы получить 40 случайных чисел, вы хотите переместить вызов random() внутри цикла.

-1

Edit: Мой ответ неверен, будет применяться только если тип возвращаемого значения не будет void, извините.

У вас должен быть оператор return вне цикла for.

Если у вас нет оператора return вне условного цикла/case, java не будет компилироваться.

Так что в вашем случае ваш мог бы выглядеть следующим образом:

public class LongestRun 
{ 
public static void main(String[] args) 
{ 
    System.out.print("\f"); 

    int[] values = new int[40]; 

    for (int i = 0; i < values.length; i++) 
    { 
     int randNum = (int)(Math.random() * (7 - 1) + 1); 
     values[i] = randNum; 
    } 

    return values[i]; 


} 
} 
+0

Все еще не компилируется, потому что вы пытаетесь вернуть значение из метода 'void'. – Andreas

+0

Только что понял, отредактировал мой ответ. – Cludch

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