import java.util.Scanner;
public class SentenceVowels
{
public static void main(String[] args)
{
int x,z, count, vowels;
String sentence;
char v;
z = 0;
vowels = 0;
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter a sentence, and the program" +
" will return the # of vowels: ");
System.out.println();
sentence = keyboard.nextLine();
x = sentence.length();
for(count=1; count <= x; count++)
{
char letter = sentence.charAt(z);
isVowel(letter);
if(v == 1)
vowels = vowels + 1;
z++;
}
System.out.println("The amount of vowels in the sentence you inputed " +
" was: " + vowels);
}
public static char isVowel(char l)
{
int v, y;
if ((l == 'a')||(l == 'e')||(l == 'i')||(l == 'o')||
(l == 'u'))
{
v = 1;
return v;
}
}
}
最佳答案
您可能错过了:
v = isVowel(letter);
而不是:
isVowel(letter);
顺便说一句,代码还可以更简单。就目前情况来看,它似乎太复杂了。
其中奇怪的事情是,v
在 isVowel
方法中被声明为 int
,但随后它返回为 char
>。
我不明白为什么您不从 isVowel
返回一个简单的 boolean 值。
另一个浪费是您可以使用 char letter = sense.charAt(count-1);
而不是使用您并不真正需要的 z
。
那么 y
不会在 isVowel
中使用...
本质上,代码一点也不漂亮。您确实应该考虑对其进行相当多的重构。
关于java - 为什么我的程序没有返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797581/