Java 使用嵌套switch语句过多是否有问题?
我从未使用嵌套的switch语句。只是想知道在我的代码中使用嵌套switch语句是否合适。 我有3个整数变量键入和位置值Java 使用嵌套switch语句过多是否有问题?,java,android-spinner,Java,Android Spinner,我从未使用嵌套的switch语句。只是想知道在我的代码中使用嵌套switch语句是否合适。 我有3个整数变量键入和位置值0或1和项,使用0至6。 无论如何,我的代码太长,无法缩短: public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) { type = spinner_type.getSelectedItemPosition(); posi
0
或1
和项,使用0
至6
。
无论如何,我的代码太长,无法缩短:
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) {
type = spinner_type.getSelectedItemPosition();
position = spinner_pos.getSelectedItemPosition();
item = spinner.getSelectedItemPosition();
switch (adapterView.getId()) {
case R.id.cck_spinner_type:
switch (pos) {
case 0:
if(position == 0 && item == 0) {
sp_name = "cc_left";
} else if(position == 0 && item == 1){
sp_name = "cc_left1";
} else if(position == 0 && item == 2){
sp_name = "cc_left2";
}else if(position == 0 && item == 3){
sp_name = "cc_left3";
}else if(position == 0 && item == 4){
sp_name = "cc_left4";
}else if(position == 0 && item == 5){
sp_name = "cc_left5";
}else if(position == 0 && item == 6){
sp_name = "cc_left6";
}else if(position == 1 && item == 0) {
sp_name = "cc_right";
} else if(position == 1 && item == 1){
sp_name = "cc_right1";
} else if(position == 1 && item == 2){
sp_name = "cc_right2";
}else if(position == 1 && item == 3){
sp_name = "cc_right3";
}else if(position == 1 && item == 4){
sp_name = "cc_right4";
}else if(position == 1 && item == 5){
sp_name = "cc_right5";
}else if(position == 1 && item == 6){
sp_name = "cc_right6";
}
break;
case 1:
if(position == 0 && item == 0) {
sp_name = "ccL_left";
} else if(position == 0 && item == 1){
sp_name = "ccL_left1";
} else if(position == 0 && item == 2){
sp_name = "ccL_left2";
}else if(position == 0 && item == 3){
sp_name = "ccL_left3";
}else if(position == 0 && item == 4){
sp_name = "ccL_left4";
}else if(position == 0 && item == 5){
sp_name = "ccL_left5";
}else if(position == 0 && item == 6){
sp_name = "ccL_left6";
}else if(position == 1 && item == 0) {
sp_name = "ccL_right";
} else if(position == 1 && item == 1){
sp_name = "ccL_right1";
} else if(position == 1 && item == 2){
sp_name = "ccL_right2";
}else if(position == 1 && item == 3){
sp_name = "ccL_right3";
}else if(position == 1 && item == 4){
sp_name = "ccL_right4";
}else if(position == 1 && item == 5){
sp_name = "ccL_right5";
}else if(position == 1 && item == 6){
sp_name = "ccL_right6";
}
break;
}
break;
case R.id.cck_spinner_pos:
switch (pos) {
case 0:
if(type == 0 && item == 0) {
sp_name = "cc_left";
} else if(type == 0 && item == 1){
sp_name = "cc_left1";
} else if(type == 0 && item == 2){
sp_name = "cc_left2";
}else if(type == 0 && item == 3){
sp_name = "cc_left3";
}else if(type == 0 && item == 4){
sp_name = "cc_left4";
}else if(type == 0 && item == 5){
sp_name = "cc_left5";
}else if(type == 0 && item == 6){
sp_name = "cc_left6";
}else if(type == 1 && item == 0) {
sp_name = "ccL_left";
} else if(type == 1 && item == 1){
sp_name = "ccL_left1";
} else if(type == 1 && item == 2){
sp_name = "ccL_left2";
}else if(type == 1 && item == 3){
sp_name = "ccL_left3";
}else if(type == 1 && item == 4){
sp_name = "ccL_left4";
}else if(type == 1 && item == 5){
sp_name = "ccL_left5";
}else if(type == 1 && item == 6){
sp_name = "ccL_left6";
}
break;
case 1:
if(type == 0 && item == 0) {
sp_name = "cc_right";
} else if(type == 0 && item == 1){
sp_name = "cc_right1";
} else if(type == 0 && item == 2){
sp_name = "cc_right2";
}else if(type == 0 && item == 3){
sp_name = "cc_right3";
}else if(type == 0 && item == 4){
sp_name = "cc_right4";
}else if(type == 0 && item == 5){
sp_name = "cc_right5";
}else if(type == 0 && item == 6){
sp_name = "cc_right6";
}else if(type == 1 && item == 0) {
sp_name = "ccL_right";
} else if(type == 1 && item == 1){
sp_name = "ccL_right1";
} else if(type == 1 && item == 2){
sp_name = "ccL_right2";
}else if(type == 1 && item == 3){
sp_name = "ccL_right3";
}else if(type == 1 && item == 4){
sp_name = "ccL_right4";
}else if(type == 1 && item == 5){
sp_name = "ccL_right5";
}else if(type == 1 && item == 6){
sp_name = "ccL_right6";
}
break;
default:
Toast.makeText(getContext(),"ERR 208",Toast.LENGTH_SHORT).show();
}
break;
case R.id.cck_spinner:
switch (pos) {
case 0:
if (type == 0 && position == 0) {
sp_name = "cc_left";
} else if (type == 0 && position == 1) {
sp_name = "cc_right";
} else {
Toast.makeText(getContext(), "You can't change LABEL of this key", Toast.LENGTH_SHORT).show();
}
break;
case 1:
if (type == 0 && position == 0) {
sp_name = "cc_left1";
} else if (type == 0 && position == 1) {
sp_name = "cc_right1";
} else if (type == 1 && position == 0) {
sp_name = "ccL_left1";
} else if (type == 1 && position == 1) {
sp_name = "ccL_right1";
}
break;
case 2:
if (type == 0 && position == 0) {
sp_name = "cc_left2";
} else if (type == 0 && position == 1) {
sp_name = "cc_right2";
} else if (type == 1 && position == 0) {
sp_name = "ccL_left2";
} else if (type == 1 && position == 1) {
sp_name = "ccL_right2";
}
break;
case 3:
if (type == 0 && position == 0) {
sp_name = "cc_left3";
} else if (type == 0 && position == 1) {
sp_name = "cc_right3";
} else if (type == 1 && position == 0) {
sp_name = "ccL_left3";
} else if (type == 1 && position == 1) {
sp_name = "ccL_right3";
}
break;
case 4:
if (type == 0 && position == 0) {
sp_name = "cc_left4";
} else if (type == 0 && position == 1) {
sp_name = "cc_right4";
} else if (type == 1 && position == 0) {
sp_name = "ccL_left4";
} else if (type == 1 && position == 1) {
sp_name = "ccL_right4";
}
break;
case 5:
if (type == 0 && position == 0) {
sp_name = "cc_left5";
} else if (type == 0 && position == 1) {
sp_name = "cc_right5";
} else if (type == 1 && position == 0) {
sp_name = "ccL_left5";
} else if (type == 1 && position == 1) {
sp_name = "ccL_right5";
}
break;
case 6:
if (type == 0 && position == 0) {
sp_name = "cc_left6";
} else if (type == 0 && position == 1) {
sp_name = "cc_right6";
} else if (type == 1 && position == 0) {
sp_name = "ccL_left6";
} else if (type == 1 && position == 1) {
sp_name = "ccL_right6";
}
break;
default:
if (type == 0 && position == 0) {
sp_name = "cc_left";
} else if (type == 0 && position == 1) {
sp_name = "cc_right";
} else {
Toast.makeText(getContext(), "You can't change LABEL of this key", Toast.LENGTH_SHORT).show();
}
}
break;
}
pfKey4.setHint(sp.getString(sp_name, "not_found"));
}
public void已选中(AdapterView AdapterView、视图视图、内部位置、长id){
type=spinner\u type.getSelectedItemPosition();
位置=微调器位置getSelectedItemPosition();
item=spinner.getSelectedItemPosition();
开关(adapterView.getId()){
案例R.id.cck\U微调器类型:
开关(pos){
案例0:
如果(位置==0&&item==0){
sp_name=“cc_left”;
}else if(位置==0&&item==1){
sp_name=“cc_left1”;
}else if(位置==0&&item==2){
sp_name=“cc_left2”;
}else if(位置==0&&item==3){
sp_name=“cc_left3”;
}else if(位置==0&&item==4){
sp_name=“cc_left4”;
}else if(位置==0&&item==5){
sp_name=“cc_left5”;
}else if(位置==0&&item==6){
sp_name=“cc_left6”;
}else if(位置==1&&item==0){
sp_name=“cc_right”;
}else if(位置==1&&item==1){
sp_name=“cc_right1”;
}else if(位置==1&&item==2){
sp_name=“cc_right2”;
}else if(位置==1&&item==3){
sp_name=“cc_right3”;
}else if(位置==1&&item==4){
sp_name=“cc_right4”;
}else if(位置==1&&item==5){
sp_name=“cc_right5”;
}else if(位置==1&&item==6){
sp_name=“cc_right6”;
}
打破
案例1:
如果(位置==0&&item==0){
sp_name=“ccL_左”;
}else if(位置==0&&item==1){
sp_name=“ccL_left1”;
}else if(位置==0&&item==2){
sp_name=“ccL_left2”;
}else if(位置==0&&item==3){
sp_name=“ccL_left3”;
}else if(位置==0&&item==4){
sp_name=“ccL_left4”;
}else if(位置==0&&item==5){
sp_name=“ccL_left5”;
}else if(位置==0&&item==6){
sp_name=“ccL_left6”;
}else if(位置==1&&item==0){
sp_name=“ccL_right”;
}else if(位置==1&&item==1){
sp_name=“ccL_right1”;
}else if(位置==1&&item==2){
sp_name=“ccL_right2”;
}else if(位置==1&&item==3){
sp_name=“ccL_right3”;
}else if(位置==1&&item==4){
sp_name=“ccL_right4”;
}else if(位置==1&&item==5){
sp_name=“ccL_right5”;
}else if(位置==1&&item==6){
sp_name=“ccL_right6”;
}
打破
}
打破
案例R.id.cck\U旋转器\U位置:
开关(pos){
案例0:
if(type==0&&item==0){
sp_name=“cc_left”;
}else if(type==0&&item==1){
sp_name=“cc_left1”;
}else if(type==0&&item==2){
sp_name=“cc_left2”;
}else if(type==0&&item==3){
sp_name=“cc_left3”;
}else if(type==0&&item==4){
sp_name=“cc_left4”;
}else if(type==0&&item==5){
sp_name=“cc_left5”;
}else if(type==0&&item==6){
sp_name=“cc_left6”;
}else if(type==1&&item==0){
sp_name=“ccL_左”;
}else if(type==1&&item==1){
sp_name=“ccL_left1”;
}else if(type==1&&item==2){
sp_name=“ccL_left2”;
}else if(type==1&&item==3){
sp_name=“ccL_left3”;
}else if(type==1&&item==4){
sp_name=“ccL_left4”;
}else if(type==1&&item==5){
sp_name=“ccL_left5”;
}else if(type==1&&item==6){
sp_name=“ccL_left6”;
}
打破
案例1:
if(type==0&&item==0){
sp_name=“cc_right”;
}else if(类型==
String sp_name="";
// type
if(type==0)
sp_name="cc_";
else
sp_name="ccL_";
//position
if(pos==0)
sp_name+="left";
else
sp_name+="right";
//item
if(item>0)
sp_name+=(item+"");
return sp_name;
return (type == 0 ? "cc_" : "ccL_") +
(pos == 0 ? "left" : "right") +
(item > 0 ? "" + item : "");