我被要求编写一个程序来打印单词中元音的数量,但是当我这样做时,它不会打印元音的数量,但它只是列出数字而不是总和。任何人都可以帮我看看有什么问题或者我该如何解决?非常感谢!
package vowel2;
import java.util.Scanner;
public class Vowel2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = in.next();
int v = 0;
for(int i = 0;i<word.length();i++)
{
char ch = word.charAt(i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
{
v++;
}
System.out.println(v);
}
}
}
运行程序:
Enter a word: happy
0
1
1
1
1
BUILD SUCCESSFUL (total time: 3 seconds)
我希望输出为1 ...
答案 0 :(得分:2)
将打印语句System.out.println(v);
移出for循环,然后移出它。
这将阻止在for循环的每次迭代中打印'v'的值,并且一旦退出for循环的范围,将仅打印'v'的最终值。
答案 1 :(得分:2)
您将System.out.println
放入循环中,因此它将为每次迭代打印变量v
的值。解决方案是将System.out.println
置于循环之外,因此它只会在循环结束后打印总值。
for(int i = 0;i<word.length();i++)
{
char ch = word.charAt(i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
{
v++;
}
}
System.out.println(v);
答案 2 :(得分:0)
您应该将print语句放在for循环之外,以便打印最终语句
for(int i = 0;i<word.length();i++)
{
char ch = word.charAt(i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
{
v++;
}
}
System.out.println(v);
}