有没有理由使用switch语句而不是if和elseif的字符串?

Sha*_*yrs -2 c c++ if-statement objective-c switch-statement

可能重复:
切换if-else语句的优点
为什么switch语句而不是if-else?

switch语句似乎完全没用.它能做的任何事情都可以通过if和else来完成.

他们甚至可能编译成相同的代码.

那么为什么要费心呢?

break交换机中的语句label:让我发疯,这种格式让我想起了goto.

这是针对objective-c,c,C++的.我不确定vb.net是否有switch语句,但即使它确实如此,我必须忘记因为我从来没有使用它.

pax*_*blo 10

他们可能编译成相同的代码.但意图不一定是提供更好的编译代码,而是提供更好的代码.

你可以这样做whilefor以循环ifgoto以及但这并不让whilefor无用.你想要:

for (i = 0; i < 10; i++)
    doSomethingWith (i);
Run Code Online (Sandbox Code Playgroud)

要么:

    i = 0;
loop12:
    if (! (i < 10))
        goto skip12
    doSomethingWith (i);
    i++;
    goto loop12
skip12:
Run Code Online (Sandbox Code Playgroud)

  • 为"你可以用if和goto进行循环,但是没有用就没有用." (4认同)