以下代码的输出是3.任何人都可以解释为什么它是3?我无法理解。
public static void main(){
Scanner sc = new Scanner(System.in);
String str = "Welcome";
int ctr = 0;
for(int i =0;i<str.length();i++) {
if("aeiou".indexOf(str.charAt(i))!=-1) {
ctr++;
}
}
System.out.println(ctr);
}
答案 0 :(得分:3)
让我们一起打破这段代码。
for(int i =0;i<str.length();i++)
if("aeiou".indexOf(str.charAt(i))!=-1)
ctr++;
i=0 -> str.charAt(0) = 'W'
在&#34; eaiou&#34;中没有元素。有价值的&#39; W&#39;因此indexOf
会返回-1
。 CTR = 0;
i=1 -> str.charAt(1) = 'e'
&#39; E&#39;是&#34; eaiou&#34;的一个元素。因此indexOf
会返回1
。 CTR = 1;
i=2 -> str.charAt(2) = 'l'
在&#34; eaiou&#34;中没有元素。有价值的&#39; l&#39;因此indexOf
会返回-1
。 CTR = 1;
i=3 -> str.charAt(3) = 'c'
在&#34; eaiou&#34;中没有元素。有价值的&#39; c&#39;因此indexOf
会返回-1
。 CTR = 1;
i=4 -> str.charAt(4) = 'o'
&#39;○&#39;是&#34; eaiou&#34;的一个元素。所以indexOf
返回3
。 CTR = 2;
i=5 -> str.charAt(5) = 'm'
在&#34; eaiou&#34;中没有元素。有价值的&#39; m&#39;因此indexOf
会返回-1
。 CTR = 2; i=6 -> str.charAt(6) = 'e'
&#39;○&#39;是&#34; eaiou&#34;的一个元素。因此indexOf
会返回1
。 CTR = 3; 最终值为3.&#34;欢迎&#34;
中的元音数量