![](/img/trans.png)
[英]How to use a switch…case loop in java inside a nested if…else if…else loop?
[英]Switch with if, else if, else, and loops inside case
出於我的問題的目的,我只包括案例1,但其他案例是相同的。 假設value當前為1,我們轉到case 1,我們的for循環遍歷數組,看看每個元素是否與whatever_value變量匹配。 在這種情況下,如果確實如此,我們聲明值變量等於2,並且我們打破了循環。 問題是,當我突出顯示另一個中斷(在eclipse中)時,它表示中斷也附加到for語句,但我只希望將for語句附加到if語句,而不是else if語句好。 我想因為for語句沒有括號,它只會為if語句循環,但eclipse會另外說(否則如果從0循環到數組長度)。
switch (value) {
case 1:
for (int i = 0; i < something_in_the_array.length; i++)
if (whatever_value == (something_in_the_array[i])) {
value = 2;
break;
} else if (whatever_value == 2) {
value = 3;
break;
} else if (whatever_value == 3) {
value = 4;
break;
}
break;
case 2:
// code continues....
你的問題.....我認為你的for循環包含所有的if
, else if
東西 - 就像一個聲明一樣,就像hoang nguyen指出的那樣。
改為這個。 請注意括號表示for循環操作的代碼塊,以及第一個else if
變為if
。
switch(value){
case 1:
for(int i=0; i<something_in_the_array.length;i++) {
if(whatever_value==(something_in_the_array[i])) {
value=2;
break;
}
}
if(whatever_value==2) {
value=3;
break;
}
else if(whatever_value==3) {
value=4;
break;
}
break;
case 2:
code continues....
但我只希望將for語句附加到if語句,而不是else if語句。
好吧,那么擺脫else
。 如果else if
不應該是for
一部分,那么將其寫為:
for(int i=0; i<something_in_the_array.length;i++)
if(whatever_value==(something_in_the_array[i]))
{
value=2;
break;
}
if(whatever_value==2)
{
value=3;
break; // redundant now
}
else if(whatever_value==3)
{
value=4;
break; // redundant now
}
話說回來:
else
部分似乎在這里沒有多大意義, 最后,如果你把開口支架放在前一行的末端,那么支架就不那么突兀; 例如
if (something) {
doSomething();
}
而不是:
if (something)
{
doSomething();
}
看起來像是一種家常的做事方式,但如果你必須......你可以根據自己的需要對其進行重組:
boolean found = false;
case 1:
for (Element arrayItem : array) {
if (arrayItem == whateverValue) {
found = true;
} // else if ...
}
if (found) {
break;
}
case 2:
如果你需要for
語句只包含if
,你需要刪除它的else
,如下所示:
for(int i=0; i<something_in_the_array.length;i++)
if(whatever_value==(something_in_the_array[i]))
{
value=2;
break;
}
/*this "else" must go*/
if(whatever_value==2)
{
value=3;
break;
}
else if(whatever_value==3)
{
value=4;
break;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.