可以在switch语句中使用字符数组,如下所示吗?当我尝试这个时,它显示一个错误,即char无法转换为int,即不兼容的类型。
char[] valuetoo = { 'b', 'a', 'c', 'd', 'e'};
switch (valuetoo){
case 'a':
System.out.println("the character found is 'a'");
break;
case 'b':
System.out.println("the character found is 'b'");
break;
case 'c':
case 'd':
case 'e':
System.out.println("the character found is ");
break;
default:
System.out.println("the characters are not found");
}
错误是:
Error:(39, 16) java: incompatible types: char[] cannot be converted to int
答案 0 :(得分:2)
您在switch
子句中提供了char数组。你不能。
The Java language(14.11. The switch Statement)仅允许这些类型作为switch语句的表达式:
Expression 的类型必须是
char, byte, short, int, Character, Byte, Short, Integer, String,
或enum
类型(§8.9),或者 发生编译时错误。
您应该提供要应用char
语句的实际switch-case
。
现在,如果你想对char数组的所有元素应用switch-case
语句,你可以使用数组的元素遍历switch
:
char[] valuetoo = { 'b', 'a', 'c', 'd', 'e'};
for (char c : valuetoo){
switch (c){
case 'a':
System.out.println("the character found is 'a'");
break;
case 'b':
System.out.println("the character found is 'b'");
break;
case 'c':case 'd':case 'e':
System.out.println("the character found is ");
break;
default:
System.out.println("the characters are not found");
}
}
答案 1 :(得分:0)
您无法将数组名称传递给开关案例但您可以将数组索引传递给下面的
switch (valuetoo[0]){
//body here
}
答案 2 :(得分:-2)
你不应该在开关
中使用char数组最好添加switch(valuetoo[index])