ورود

View Full Version : مبتدی: تبدیل ساختار if به switch در جاوا



png_92
شنبه 15 خرداد 1395, 19:55 عصر
سلام
من ی تیکه کد نوشتم که با if هست و حالا میخوام اونارو به ساختار switch case تبدیل کنم. این کد :

if ((randomAndroidColor1 == rainbow[0] && randomAndroidColor2 == rainbow1[2]) || (randomAndroidColor1 == rainbow[3] && randomAndroidColor2 == rainbow1[4])) {
findViewById(ans).setBackgroundColor(rainbow2[0]);
iswon = false;
findViewById(ans).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
iswon = true;
}
});
}

//red & blue = violet
else if ((randomAndroidColor1 == rainbow[0] && randomAndroidColor2 == rainbow1[3]) || (randomAndroidColor1 == rainbow[1] && randomAndroidColor2 == rainbow1[4])) {
findViewById(ans).setBackgroundColor(rainbow2[1]);

findViewById(ans).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
iswon = true;
}
});

}


میشه راهنمایی کنید که باید چه تغییراتی بدم ؟

vahid-p
یک شنبه 16 خرداد 1395, 14:35 عصر
کدتون که مشخص نیست چیه، البته به صورت HTML کدتون این شد:
if ((randomAndroidColor1 == rainbow[0] && randomAndroidColor2 == rainbow1[2]) || (randomAndroidColor1 == rainbow[3] && randomAndroidColor2 == rainbow1[4])) { findViewById(ans).setBackgroundColor(rainbow2[0]);
iswon = false;
findViewById(ans).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
iswon = true;
}
});
} //red & blue = violet
else if ((randomAndroidColor1 == rainbow[0] && randomAndroidColor2 == rainbow1[3]) || (randomAndroidColor1 == rainbow[1] && randomAndroidColor2 == rainbow1[4])) {
findViewById(ans).setBackgroundColor(rainbow2[1]);
findViewById(ans).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
iswon = true;
}
});
}
که چنین چیزی رو بخوای به صورت switch...case انجام بدی پیچیده تر میشه و اصلا توجیهی برای استفاده ازش وجود نداره
ولی در حالت کلی تبدیل if...elseif ها به switch..case:
اگر داشته باشیم:

if(x==1){
//Action 1
}else if(x==5){
//Action 2
}else if(x==10){
//Action 3
}else{
//Action 4
}

معادلش میشه:
switch(x){
case 1:
//Action 1
break;
case 5:
//Action 2
break;
case 10:
//Action 3
break;
default:
//Action 4
}

png_92
چهارشنبه 26 خرداد 1395, 20:16 عصر
درسته من میدونم که تبدیلش چجوریه ولی چون من داخل if م بزرگه و از and , or استفاده کردم از نظر syntax ی نتونستم به switch تبدیلش کنم.