2013-10-04 3 views
0

x이 정의 된 행에 경계선 오류가 발생합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?한 자리 숫자를 단일 숫자로 병합하려고합니다.

import java.util.ArrayList; 
import java.lang.Math; 

public class poopy 
{ 
    public static void main(String[] args) 
    { 
     ArrayList<Integer> num = new ArrayList<Integer>(); 
     double x; 

     for(int j=1; j<5; j++) 
     { 
      num.add(j); 
     } 

     for(int i: num) 
     { 
      x = num.get(i) * Math.pow(10,i); 
      System.out.println(x); 
     } 


    } 
} 

이것은 계산기를 될 것입니다 및 INT ArrayList은 숫자 버튼을 누르면마다 성장할 것입니다.

답변

0
for(int i: num) 

여기는 색인이 아닌 값입니다.

-1

num.get(i) 메서드를 사용하면 인덱스로 배열에 액세스합니다. 배열 요소는 [num[0]=1, num[1]=2, num[2]=3, num[3]=4]입니다.

루프 for(int i: num)num 배열의 요소를 액세스하고 변수 i에 저장합니다.

2

당신은 구식 for 루프를 foreach 루프에 전달하고 사용할 필요가 :

for(int i=0;i<num.size;i++) 
    { 
     x = num.get(i) * Math.pow(10,i); 
     System.out.println(x); 
    } 

무슨 일이 배열의 값을 가지고 있다는 것입니다,하지만 당신은 너무 인덱스가 필요합니다. 따라서 foreach 루프가 없습니다. 귀하에 대한 (대한-각) 루프는 다음과 같이해야한다

+0

코드를 개정했습니다. 나는 여전히 x 값에 문제가있다. 1을 두 번 누르면 x가 112의 값을 얻고 계산기 화면에 인쇄 된 값이 여전히 12라고 가정 해보십시오. – llamaCaraDara

0

:

for(int i: num) 
{ 
    x = i * Math.pow(10,i); 
    System.out.println(x); 
} 

내가 대신 num.get (I)

당신은 인덱스로 항목에 액세스 할 경우의 당신은 안 for-each 루프를 사용하려면 다음과 같이 for 루프를 사용하십시오.

for(int i = 0; i < num.size(); i++) 
{ 
    x = num.get(i) * Math.pow(10,i); 
    System.out.println(x); 
} 
관련 문제