Количество гласных в слове

#java #if-statement #for-loop

#java #if-оператор #for-цикл

Вопрос:

Меня просят написать программу для печати количества гласных в word, но когда я это делаю, она не выводит количество гласных, а просто выводит числа, но не сумму. Кто-нибудь может помочь мне понять, что не так, или как я могу это исправить? Большое спасибо!

 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…

Комментарии:

1. Переместите оператор print за пределы цикла, и вы получите результат, напечатанный только один раз, после суммирования гласных.

Ответ №1:

Переместите инструкцию print System.out.println(v); из цикла for и после него.

Это предотвратит печать значения ‘v’ для каждой итерации цикла for, и только конечное значение ‘v’ будет напечатано после выхода из области действия цикла for .

Ответ №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);
  

Комментарии:

1. Добавление объяснения было бы очень полезно для OP.

Ответ №3:

Вы должны поместить оператор 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);
}