0
int i=10
switch(i)
case 1:
print(1);
case 10:
print(10);
case 20:
print(20);
直覺這預計將打印10但由於沒有break語句,這將打印10和20
沒有任何其他人認爲這感覺就像是在一個錯誤語言?
int i=10
switch(i)
case 1:
print(1);
case 10:
print(10);
case 20:
print(20);
直覺這預計將打印10但由於沒有break語句,這將打印10和20
沒有任何其他人認爲這感覺就像是在一個錯誤語言?
並非每種語言都允許在switch
聲明中出現轉折。維基百科上有一個brief section。
continue
關鍵詞break
到空塊結束所有case
塊但允許您組一起:switch
爲詳盡。對switch
聲明有各種各樣的要求。並非每種語言都是一樣的!一對夫婦的小例子:
// C#
switch (i) {
case 1:
case 2:
// you can group empty case blocks together
break; // but must end with break
case 3:
// do something else
break;
}
// Swift
switch i {
case 1: // match 1
case 2,3: // match 2 or 3
case 4...10: // match 4 to 10 (inclusive)
case let n where n % 2 == 0: // match an even number and assign it to n
default: // must be exhaustive
}
不,落空的情況下可以是有益的,雖然他們經常被濫用。確保你的不混合模式匹配'switch'和'switch'匹配文字。 – Carcigenicate