我正在尝试获取case语句,以使用从字符串中提取的char数据将整数添加到整数数组中。
int x = SString.length() - 1;
int[] values = new int[x + 1];
for (int i = 0; i <= x; i++) {
System.out.println(keyword.charAt(i));
switch (SString.charAt(i)) {
case 'a':
values[i] = 0;
case 'b':
values[i] = 1;
case 'c':
values[i] = 2;
System.out.println(values[i]);
}
}
当SString = abc
为values = {0,1,2}
时我的预期输出。而是values = {2,2,2}
。
答案 0 :(得分:0)
您忘记了break
条语句。
switch (SString.charAt(i)) {
case 'a':
values[i] = 0;
break;
case 'b':
values[i] = 1;
break;
case 'c':
values[i] = 2;
break;
}
答案 1 :(得分:0)
您忘记了每个案例陈述中的中断,因此所有案例都失败了,最终都以values[i] = 2;
switch(SString.charAt(i)){
case 'a':
values[i] = 0;
break; // this one for each
case 'b':
...
答案 2 :(得分:0)
您忘记了break语句,System.out应该在switch语句之外。
String SString = "abc";
int x = SString.length() - 1;
int[] values = new int[x + 1];
for (int i = 0; i <= x; i++) {
switch (SString.charAt(i)) {
case 'a':
values[i] = 0;
break;
case 'b':
values[i] = 1;
break;
case 'c':
values[i] = 2;
break;
default:
break;
}
System.out.print(values[i] + " ");
}
输出:0 1 2