#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);
}