弦楽のためのループのために強化されました

マニッシュ・ジョシー:

私はコーディングの初心者です。現在、私は配列を勉強しています。

次のコードでは、私が使用して、ユーザーが入力した言葉を表示しようとしている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
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=233123&siteId=1