2015-01-10 10 views
-1

배열에 실제로 저장하려면 어떻게해야합니까? 이 배열 당신이 그것을 어떻게하고 자세히 설명하는 나에게 더 많은 방법을 말할 수 있기를 바랍니다 아무것도 저장하지 않습니다이 코드 , 당신에게 당신은 i 일에 값을 저장Java 배열 배열에 저장하는 방법

import java.util.Scanner; 
public class CountArray 
{ 
    public static void main(String[] arg) 
    { 
     Scanner scan = new Scanner(System.in); 
     int countPOZ = 0; 
     int countP5 = 0; 
     int countNONE = 0; 

     System.out.println(); 

     System.out.print("Type elements: "); 
     int[] x = new int [scan.nextInt()]; 

     for(int i = 0; i < x.length; i++) 
     { 
      System.out.print("Type numbers: "); 
      int numrat = scan.nextInt(); 

      if(numrat > 0) 
       countPOZ++; 
      else if (numrat % 5 == 0) 
       countP5++; 
      else 
       countNONE++; 
     } 
     System.out.println(); 
     System.out.println(x[1]); //here it will display 0 because nothing is saved.. in the array 
     System.out.println("Positive: "+countPOZ); 
     System.out.println("Div.. with 5: "+countP5); 
     System.out.println("Others: "+countNONE); 
    } 
} 

답변

0

대단히 감사합니다 루프의 맥락에서

x[i] = someValue; 

: 귀하의 x 배열의 위치

for(int i = 0; i < x.length; i++) 
    { 
     System.out.print("Type numbers: "); 
     int numrat = scan.nextInt(); 

     if(numrat > 0) 
      countPOZ++; 
     else if (numrat % 5 == 0) 
      countP5++; 
     else 
      countNONE++; 
     x[i] = numrat; 
    } 
0

사용자 입력을 순서대로 저장합니다.

x[i] = scan.nextInt(); 
0

numrat을 제거하고 x[i]을 사용하십시오. 그리고 중괄호 등을 사용하십시오.

x[i] = scan.nextInt(); 
if(x[i] > 0) { 
    countPOZ++; 
} else if (x[i] % 5 == 0) { 
    countP5++; 
} else { 
    countNONE++; 
} 

이 내용은 JLS-10.4 - Array Access에 나와 있습니다.

배열의 성분 A [I]에서와 같이 그 값 [및] 둘러싸인 인덱싱 표현 뒤에 배열 참조 인 식 구성된 배열 액세스 식 (§15.13)에 의해 액세스된다.

모든 배열은 0 원점입니다. 길이가 n 인 배열은 정수 0에서 n-1로 인덱싱 할 수 있습니다. 코드에서

class Gauss { 
    public static void main(String[] args) { 
     int[] ia = new int[101]; 
     for (int i = 0; i < ia.length; i++) ia[i] = i; 
     int sum = 0; 
     for (int e : ia) sum += e; 
     System.out.println(sum); 
    } 
} 
+0

감사합니다. 자세히 설명해 주시겠습니까? – user1873251

+0

@ user1873251 관련 JLS를 추가했습니다. –

+0

나는 개념을 알고 있지만, 나는 왜 내가 배열 [...]에 있는지 이해하는데 문제가 있다는 것을 알고있다. 나는 단지 값을 1로 계산하고 .. 2 .. .. 입력 된 요소의 수까지 .. – user1873251

0

INT [] X = 새로운 INT [scan.nextInt()];

배열의 크기를 정의하고 있습니다. 당신은 여기에 어떤 요소도 저장하고 있지 않습니다.

은 그래서 당신은 그것의 인덱스에 액세스하여 특정 인덱스에

+0

그 라인에 어떤 종류의 예외가 주어져야합니까? – Tom

+0

int에 대한 배열의 기본값은 0입니다. – user1873251

+0

그럼 설명이 잘못되었습니다. 배열에 데이터를 저장하는 것과는 아무 관련이 없습니다. 배열 크기로 '0'또는 '1'을 입력하는 것입니다. – Tom

0

시도를 값을 저장할 수있는 특정 인덱스

x[1] = scan.nextInt() 

에 값을 저장 한 다음 배열에 값을 추가 할 필요가 배열의 모든 요소를 ​​정의 비즈니스 논리를 위해 배열을 사용하십시오.

int[] x = new int [scan.nextInt()]; 

for(int i = 0; i < x.length; i++){ 
    System.out.print("Type numbers: "); 
    x[i] = scan.nextInt(); 

    if(x[i] > 0) 
     countPOZ++; 
    else if (x[i] % 5 == 0) 
     countP5++; 
    else 
     countNONE++; 
    } 

그러나 당신은 당신의 코드 당 하나만 요소를 통과하지 않는 당신의 배열에 그 요소를 추가로 뭔가 int[] x = new int [scan.nextInt()] 누락.

여러 요소를 쉼표로 구분 된 목록 1,2,3,4,5,6,7으로 전달하면 코드에서 배열 목록 int x[] = scan.nextInt().split(",")을 만든 다음 사용할 수 있습니다.

관련 문제