class SwitchDemo
{
public static void main(String ar[])
{
String name="aeiouuu";
int vo=0,co=0;
char c[]=name.toCharArray();
for(int i=0;i<name.length();i++)
{
switch(c[i])
{
case 'a':case 'e':case 'i':case 'o':case 'u':
vo++;
default :
co++;
System.out.println("co");
break;
}
}
System.out.println("Number of vowels are : "+vo);
System.out.println("Number of consonants are : "+co);
}
}
程序的输出是
Number of vowels are : 7
Number of consonants are : 7
但我无法理解这个节目,因为所有元音都是可能的元音?
答案 0 :(得分:5)
如果你把它写成
,可能会更有意义 case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
vo++;
default :
co++;
System.out.println("co");
break;
然后考虑评估switch
语句是找到第一个匹配的case
,然后继续运行直到块的结尾或者break语句。
所以代码中发生的事情是你增加vo
,然后继续评估代码并增加co
。为了防止它这样做,你可能应该首先点击break
语句。可能类似
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
vo++;
break;
default :
co++;
System.out.println("co");
break;
答案 1 :(得分:4)
您缺少break语句:
case 'a':case 'e':case 'i':case 'o':case 'u':
vo++;
break;//this is what you are missing
default :
如果你不提供休息,你的默认情况也会被执行,因此它也会增加co变量。