【发布时间】: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