マニッシュ・ジョシー:
私はコーディングの初心者です。現在、私は配列を勉強しています。
次のコードでは、私が使用して、ユーザーが入力した言葉を表示しようとしているString
配列を。コードが表示されるnull
ため、ループ強化使用している場合。誰もが問題を説明することはできますか?
コードでは、forループの正常と正常に動作しています。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String word;
int count = 0;
String[] words = new String[100];
System.out.println("Enter the words (enter 'done' when finished):");
do {
System.out.println("Enter word "+ (count+1));
word=scanner.nextLine();
if (!word.equalsIgnoreCase("done")) {
words[count]=word;
count++;
}
}while (!word.equalsIgnoreCase("done"));
System.out.println("Words entered are:");
for (String print:words){
System.out.println(print);
}
scanner.close();
}
コードは、ユーザーが入力した単語を表示する必要があるが、それは表示されるnull
単語の代わりに。
彼らは次のとおりでした:
それはおそらくされているほとんどが、配列のすべての要素100を、印刷しているため、拡張forループ、この場合は適切ではありませんnull
。
あなたがループのため定期的に使用するときは、を活用するcount
あなたは、配列の初期化のみの要素を印刷することができますされ、変数:
for (int i = 0; i < count; i++) {
System.out.println(words[i]);
}
あなたが拡張forループを使用して主張する場合は、をチェックすることができるnull
要素、そしてあなたが最初に遭遇したときにループから破ります:
for (String print:words){
if (print != null) {
System.out.println(print);
} else {
break; // once you encountered the first null, there's no point to continue the loop
}
}