【问题标题】:Vowel Counter - Switch statement counting correctly元音计数器 - 正确计数切换语句
【发布时间】:2020-11-26 00:20:25
【问题描述】:

有人可以向我解释为什么这个元音计数器没有正确计算每个元音吗?我对 switch 语句感到困惑,并且对 Java 非常陌生……这是一个分配,我必须使用 switch 语句。我可以使用 if-else 语句使其严格工作,但不能使用 switch 语句...感谢您的关注:)

import java.util.Scanner;

public class VowelCount
{
    public static void main(String[] arg)
    {
        Scanner scan = new Scanner(System.in);
        String userIn;
        
        System.out.println("Enter a word.");
        userIn = scan.nextLine();
        String str = userIn.toLowerCase(); 
        
        int countA = 0, countE = 0, countI = 0, countO = 0, countU = 0, nonVowel = 0, i = 0;
        char letter = str.charAt(i);
        
        while(i < str.length())
        {
            
                if(str.charAt(i) == 'a') 
                    letter = 'A';
                else if(str.charAt(i) == 'e')
                    letter = 'E';
                else if(str.charAt(i) == 'i')
                    letter = 'I';
                else if(str.charAt(i) == 'o')
                    letter = 'O';
                else if(str.charAt(i) == 'u')
                    letter = 'U';
            
            switch(letter)
            {
                case 'A':
                    countA++;
                    break;
                case 'E':
                    countE++;
                    break;
                case 'I':
                    countI++;
                    break;
                case 'O':
                    countO++;
                    break;
                case 'U':
                    countU++;
                    break;
                default:
                    break;
            }
        i++;
    }
     System.out.println("This word contains: ");
     System.out.println("A's :" + countA);
     System.out.println("E's :" + countE);
     System.out.println("I's :" + countI);
     System.out.println("O's :" + countO);
     System.out.println("U's :" + countU);
     System.out.println("Non-vowel characters:" + (str.length() - (countA + countE + countI + countO+ countU)));
    }
}

【问题讨论】:

  • 先用“switch (str.charAt(i))”怎么样?
  • @mpez 只要我删除无关的 if-else 部分就可以了!谢谢你:)

标签: switch-statement increment


【解决方案1】:

啊哈!谢谢@mpez0!我根本不需要 if-else 语句。这行得通...

import java.util.Scanner;

public class VowelCount
{
    public static void main(String[] arg)
    {
        Scanner scan = new Scanner(System.in);
        String userIn;
        
        System.out.println("Enter a word.");
        userIn = scan.nextLine();
        String str = userIn.toLowerCase(); 
        
        int countA = 0, countE = 0, countI = 0, countO = 0, countU = 0, nonVowel = 0, i = 0;
        char letter = str.charAt(i);
        
        while(i < str.length())
        {
            
            switch(str.charAt(i))
            {
                case 'a':
                    countA++;
                    break;
                case 'e':
                    countE++;
                    break;
                case 'i':
                    countI++;
                    break;
                case 'o':
                    countO++;
                    break;
                case 'u':
                    countU++;
                    break;
                default:
                    break;
            }
        i++;
    }
     System.out.println("This word contains: ");
     System.out.println("A's :" + countA);
     System.out.println("E's :" + countE);
     System.out.println("I's :" + countI);
     System.out.println("O's :" + countO);
     System.out.println("U's :" + countU);
     System.out.println("Non-vowel characters:" + (str.length() - (countA + countE + countI + countO+ countU)));
    }
}

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 2020-03-24
    • 2013-08-09
    相关资源
    最近更新 更多