【发布时间】:2021-08-18 20:28:00
【问题描述】:
public int wordsCount(String[] words, int len) {
int counter = 0;
for (String s : words) {
if (s.length()==len) {
counter++;
}
}
return counter;
}
在这里我试图找到字符串的数量和给定输入的长度
【问题讨论】:
public int wordsCount(String[] words, int len) {
int counter = 0;
for (String s : words) {
if (s.length()==len) {
counter++;
}
}
return counter;
}
在这里我试图找到字符串的数量和给定输入的长度
【问题讨论】:
除了允许您的代码编译之外,冒号什么也不做!
: 只是 enhanced for statement 语法的一部分,也不太正式地称为 "for each loop"。
正如上面“for each loop”链接中所说:
void cancelAll(Collection<TimerTask> c) { for (TimerTask t : c) t.cancel(); }当您看到冒号 (
:) 时,将其读作“in”。上面的循环读作“对于 c 中的每个 TimerTask t”。
因此,对您的代码应用相同的解释,将其读作“for each String s in words”。
【讨论】:
您使用的循环是函数wordsCount 中的for each loop。
for each loop 所做的是,根据数组的底层数据类型遍历整个数组。因此,您不必创建循环计数器来遍历,而是在您的情况下,String s 将是用于遍历 String 数组,其中s 是您在数组中的当前元素。
语法:for ([Data type][variable] : [source array/iterable])
【讨论】: