첫째로, 당신은 당신의 배열을 초기화하지 않았다가, 당신은 단지 선언 된 배열 변수 (이름 배열)가 포함되어 있습니다. 나중에 진행하기 전에 Java의 기본 개념을 읽고 연습하는 것이 좋습니다. 그렇지 않으면 나중에 혼동을 일으킬 수 있기 때문입니다. 선언, 초기화 및 할당에 대한 자세한 내용은 here을 참조하십시오.
Andrew가 지적했듯이 루프의 첫 번째 반복에서 키워드 break
을 사용했다는 또 다른 문제가 있습니다. 이 키워드는 코드 블록을 종료하므로 루프는 한 번만 실행 된 다음 정상적으로 종료됩니다.
이 코드는 스캐너로 크게 단순화 할 수 있습니다. 스캐너는 지정된 위치에서 입력을 읽습니다. 스캐너의 생성자는 컴퓨터 (키보드)의 기본 입력 장치 인 경우 System.in
또는 컴퓨터의 파일과 같은 File 개체의 두 입력을 허용합니다.
기본적으로 스캐너의 줄무늬는 공백으로 설정됩니다. delimeter는 연속적인 토큰 사이의 경계를 지정하므로 예를 들어 2 3 5 5
을 입력 한 다음 루프를 실행하고 scanVarName.nextInt()
메서드를 호출하면 공백을 무시하고 해당 단일 행의 각 정수를 자체 토큰으로 처리합니다.
그래서 올바르게 이해한다면 사용자로부터 입력을 읽고 (아마도 정수를 입력 할 것입니다) 이들을 정수 배열에 저장하고 싶습니까? 사용자가 입력 할 정수의 수를 알고있는 경우 다음 코드를 사용하면됩니다. 먼저 그들이 입력 할 계획 얼마나 많은 정수 당신에게 메시지를 표시 할 수 있습니다
// this declares the array
int[] array;
// declares and initializes a Scanner object
Scanner scan = new Scanner(System.in);
System.out.print("Number of integers: ");
int numIntegers = scan.nextInt();
// this initializes the array
array = new int[numIntegers];
System.out.print("Enter the " + numIntegers + " integers: ");
for(int i = 0; i < numIntegers; i ++)
{
// assigns values to array's elements
array[i] = scan.nextInt();
}
// closes the scanner
scan.close();
그런 다음 확인을 위해 배열의 항목을 실행하고 그들을 밖으로 인쇄 할를위한 각 루프를 사용할 수 위의 코드 의도 한대로 작동합니다.
첫 번째 반복에서 왜 '중단'합니까? – Li357
1) 예, 배열이 초기화되지 않았습니다. 배열에 아직 크기가 없으므로'array [x]'가 어떻게 작동할까요? 2) 루프에 break 문이 있기 때문에 한 번만 실행됩니다. –
답장을 보내 주셔서 감사합니다. – obszoenling