gpt4 book ai didi

java - 增强的 for 字符串循环

转载 作者:行者123 更新时间:2023-11-30 06:02:41 25 4
gpt4 key购买 nike

我是编码初学者。目前我正在学习数组。

在下面的代码中,我尝试使用 String 数组显示用户输入的单词。使用增强型 for 循环时,代码显示 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 而不是单词。

最佳答案

增强的 for 循环不适合这种情况,因为它会打印数组的所有 100 个元素,其中大部分可能是 null

当你使用常规的 for 循环时,你可以利用 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
}
}

关于java - 增强的 for 字符串循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com