10 개의 문자열을 포함하는 문자열 배열을 인스턴스화했습니다. 나는 기본적으로 모든 10 개의 문자열이 끝날 때까지 또는 사용자가 종료하기 위해 "q"를 입력 할 때까지 주체 이름을 입력하도록 사용자에게 요청합니다. 이러한 일이 발생하면 String 배열 요소를 printArray 메서드를 통해 인쇄해야합니다. 이것은 지금까지 가지고있는 것이지만, "The Array Elements :"다음에 각 값에 대해 "null"값이 표시되어 총 10 개의 문자열을 구성합니다. 이것은 내가 10 개가 아닌 몇 개의 항목 뒤에 "q"를 입력하면 발생합니다. 나는 "null"값을 없애고 싶습니다. 또한 사용자가 10 번째 항목 다음에 "q"를 입력하지 않으면 10 개의 배열을 표시해야합니다.문자열 배열 루프 인쇄 값 null java
{
// Instantiate a String array that can contain 10 items.
String[] array = new String[10];
// Read names of subjects into this array
// and count how many have been read in.
// There may be fewer than 10.
Scanner input = new Scanner(System.in);
System.out.println("Please enter a subject name or enter q to quit: ");
String subject = input.nextLine();
int i=0;
while (!"q".equals(subject))
{
array[i]=subject;
i++;
System.out.println("Please enter a subject name or enter q to quit: ");
subject = input.nextLine();
}
input.close();
System.out.println("The Array Elements:");
// Call printArray to print the names in the array.
printArray(array);
}
/**
* Method printArray prints the String values
* in a partially-filled array, one per line. Only the
* significant items in the array should be printed.
*/
public static void printArray(String[] args)
{
for(String val : args)
System.out.println(val);
}
그러나 루프가 제대로 작동하지 않는다고 생각합니다. 왜? –
디버거를 사용하는 방법을 배우는 것이 좋습니다. 단계별로 코드를 디버그하고 계속 진행하면서 '종료'및 '제목'및 '입력'변수의 값을 확인하십시오. 당신은 아마 문제를 발견 할 것이다. – assylias
while 루프가 시작되지 않습니다. 왜냐하면 'q "가"q "와 동등하지 않기 때문입니다. – Krease