2013-03-19 3 views
1

나는 약 1 시간 동안 갇혀 있었고 인터넷 검색을하고 인터넷 검색을 한 후 내 코드를 실행할 수 없었다. 그것은 하나의 오류가 아니라 실행을 누르면 디버그를 열고 아무것도하지 않습니다. 나는 이클립스를 사용하고있다. 나는 10 개의 객체 목록을 만들고 그들에게 난수를 주려고합니다.자바의 초보자 문제

class test { 
public static void main(String[] args){ 
    int a [] = new int[9];{ 
      for (int i = 0; i < a.length; i++) 
       a[i] = a[(int)(Math.random()*70+15)]; 
      for (int elem : a){ 
       System.out.println(elem); 
      };    
}}} 
+1

들여 쓰기하고 있지 않는 임의 곱슬 중괄호 블록은 그가 거기 오류가 발생하지 않은 경우 –

답변

6

당신이 실제로 응용 프로그램을 실행하는 경우, 그 다음 줄에 예외와 함께 실패한다 : 가장 높은 지수는 그러나 8 그래서 여기

   a[i] = a[(int)(Math.random()*70+15)]; 

a[]는, 구 개 요소로 구성되어, Math.random()*70+15는보다 큰 8

+0

그래, 내가 말하려고했다 읽을 수있는 쉬운 코드 ..., 그는 오히려 낮은 – Cruncher

+0

미안 단지 압연하기 하나의 elemnt 값을 주려고 노력하고 그것을 변경 한 작품을하지 않았다. – user1794625

+0

@Cruncher : 그는 가질 수 없었습니다. + 15는 매번 실패합니다. – NPE

2

내가 자바를 모르고있는 번호를 생성 보장,하지만 난 말할 것입니다 :

for (int i = 0; i < a.length; i++) 
a[2] = a[(int)(Math.random()*70+15)]; 
,

for (int i = 0; i < a.length; i++) 
a[i] = (int)(Math.random()*70+15); 
1

내가 대신 난수 생성기를 사용하여 제안해야한다. 나는 또한 당신의 프로그램을 위해 i 또는 a보다 좋은 이름을 사용하도록 제안 할 것이다.

import java.util.Random; 

class test { 
    public static void main(String[] args){ 
     Random object = new Random();//declare for your object 
     int a; //declare your integer type (I would suggest 
        // changing that to be more descriptive) 
     for (int i = 1; i <=10; i++) 
     { 
      a = object.nextInt(100); // change 100 to however large 
            // parameter you want 
      System.out.println(a + " "); 
     } 

    }    
} 
+0

java7 이상에서는'ThreadLocalRandom'을 사용하는 것이 가장 좋습니다. 예를 들어보세요. [여기] (http://stackoverflow.com/a/363692/3519000) – lrnzcig