錯誤9:switch語句中會有些語句執(zhí)行不到
在C#中,如果一個switch語句執(zhí)行了一些操作,則程序就可能不能執(zhí)行到下一個語句。因此,盡管下面的代碼在C++中是合法的,但在C#中卻不合法:
switch (i)
{
case 4:
CallFuncOne();
case 5: // 錯誤,不會執(zhí)行到這里
CallSomeFunc();
}
要實現(xiàn)上面代碼的目的,需要使用一個goto語句:
switch (i)
{
case 4:
CallFuncOne();
goto case 5;
case 5:
CallSomeFunc();
}
如果case語句不執(zhí)行任何代碼,則所有的語句都會被執(zhí)行。如下面的代碼:
switch (i)
{
case 4: // 能執(zhí)行到
case 5: // 能執(zhí)行到
case 6:
CallSomeFunc();
}
在C#中,如果一個switch語句執(zhí)行了一些操作,則程序就可能不能執(zhí)行到下一個語句。因此,盡管下面的代碼在C++中是合法的,但在C#中卻不合法:
switch (i)
{
case 4:
CallFuncOne();
case 5: // 錯誤,不會執(zhí)行到這里
CallSomeFunc();
}
要實現(xiàn)上面代碼的目的,需要使用一個goto語句:
switch (i)
{
case 4:
CallFuncOne();
goto case 5;
case 5:
CallSomeFunc();
}
如果case語句不執(zhí)行任何代碼,則所有的語句都會被執(zhí)行。如下面的代碼:
switch (i)
{
case 4: // 能執(zhí)行到
case 5: // 能執(zhí)行到
case 6:
CallSomeFunc();
}