java - 为什么我的程序没有返回值?

标签 java

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

顺便说一句,代码还可以更简单。就目前情况来看,它似乎太复杂了。
其中奇怪的事情是,visVowel 方法中被声明为 int,但随后它返回为 char >。 我不明白为什么您不从 isVowel 返回一个简单的 boolean 值。
另一个浪费是您可以使用 char letter = sense.charAt(count-1); 而不是使用您并不真正需要的 z
那么 y 不会在 isVowel 中使用...
本质上,代码一点也不漂亮。您确实应该考虑对其进行相当多的重构。

关于java - 为什么我的程序没有返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797581/

相关文章:

java - 如何从文本文件存储到数组行标记中?

java - 在 RecyclerView 中重置先前 CardView 的颜色

java - 如何实现HAPI FHIR资源道?

java - 当spring调用get(Object o, Class<T> aClass)函数时使用@Cacheable

java - org.springframework.beans.factory.BeanCreationException 与事务管理器

java - 使用 SNS 通知触发 lambda 不起作用

java - 自定义 JSpinner 模型不起作用

JavaFX TilePane 用户单击的图 block

java - 如何抛出错误并同时返回空列表?

java - 在 Swing 中使用单例设计模式