单词中的元音数量

时间:2016-10-22 07:26:13

标签: java if-statement for-loop

我被要求编写一个程序来打印单词中元音的数量,但是当我这样做时,它不会打印元音的数量,但它只是列出数字而不是总和。任何人都可以帮我看看有什么问题或者我该如何解决?非常感谢!

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 ...

3 个答案:

答案 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);
}