C 什么';用if语句破案的正确形式是什么?

C 什么';用if语句破案的正确形式是什么?,c,C,你会这样写吗: // This is just something a came up to explain my question switch(a) { case 2: if(x >= 1) { dosomething(); break; } else { dosomethingelse(); break; } default: break; } switch(a) {

你会这样写吗:

// This is just something a came up to explain my question

switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
        break;
    }
    else
    {
        dosomethingelse();
        break;
    }
default:
break;
}
switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
    }
    else
    {
        dosomethingelse();
    }
    break;
default:
break;
}
switch(a){

    case 1:

       if( a > b ){
       // do something
       }else{
       //do some other thing
       }

       break;

    case 2:

       if( a > c ){
       // do something
       }else{
       //do some other thing
       }

       break;

    default

       break;

}
或者像这样:

// This is just something a came up to explain my question

switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
        break;
    }
    else
    {
        dosomethingelse();
        break;
    }
default:
break;
}
switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
    }
    else
    {
        dosomethingelse();
    }
    break;
default:
break;
}
switch(a){

    case 1:

       if( a > b ){
       // do something
       }else{
       //do some other thing
       }

       break;

    case 2:

       if( a > c ){
       // do something
       }else{
       //do some other thing
       }

       break;

    default

       break;

}

break
应该在if/else语句内部还是外部?有没有正确的方法,或者没有关系?

这两种方法都是正确的,但最好像第二种方法一样,因为你应该在每个案例陈述之后立即进行中断。此外,它倾向于具有更可读性和可管理性的代码,因为您可能会在以后更改
if
部分,从而丢失
break
s

所以你可以这样做:

// This is just something a came up to explain my question

switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
        break;
    }
    else
    {
        dosomethingelse();
        break;
    }
default:
break;
}
switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
    }
    else
    {
        dosomethingelse();
    }
    break;
default:
break;
}
switch(a){

    case 1:

       if( a > b ){
       // do something
       }else{
       //do some other thing
       }

       break;

    case 2:

       if( a > c ){
       // do something
       }else{
       //do some other thing
       }

       break;

    default

       break;

}

两种方法都是正确的,但最好像第二种方法那样进行,因为您应该在每个案例陈述之后立即进行中断。此外,它倾向于具有更可读性和可管理性的代码,因为您可能会在以后更改
if
部分,从而丢失
break
s

所以你可以这样做:

// This is just something a came up to explain my question

switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
        break;
    }
    else
    {
        dosomethingelse();
        break;
    }
default:
break;
}
switch(a)
{
case 2:
    if(x >= 1)
    {
        dosomething();
    }
    else
    {
        dosomethingelse();
    }
    break;
default:
break;
}
switch(a){

    case 1:

       if( a > b ){
       // do something
       }else{
       //do some other thing
       }

       break;

    case 2:

       if( a > c ){
       // do something
       }else{
       //do some other thing
       }

       break;

    default

       break;

}

我倾向于第二种选择,更清楚的是,案例陈述确实有一个中断


如果If中有中断,通常是使case语句短路,使其无法继续执行。尽管如此,还是要小心短路,因为短路会让事情变得更混乱/更容易出错,而且通常是在开关中做得太多的症状。

我会选择第二个选项,它倾向于更清楚地表明case语句确实有中断


如果If中有中断,通常是使case语句短路,使其无法继续执行。尽管如此,还是要小心短路,因为短路会让事情变得更混乱/更容易出错,而且通常是在开关中做得太多的症状。

如上所述,第二个选项更可取,因为可以避免重复中断。然而,我还想建议,违约中断是没有必要的。由于默认值往往是执行的最后一个选项。

如上所述,第二个选项更可取,因为可以避免重复中断。然而,我还想建议,违约中断是没有必要的。由于默认值往往是最后执行的选项。

通常,您需要一个退出点,因此重量相等的if/else链应该在底部有断点

if(a >= 1)
{
    dosomething();
}
else
{
    dosomethingelse();
}
break;
一个常见的异常是对错误条件进行预测试,并在执行操作之前爆发

if(a < 1)
{
    handle_error();
    break;
}

dosomething();
break;
if(a<1)
{
handle_error();
打破
}
dosomething();
打破

通常,您需要一个退出点,因此重量相等的if/else链的底部应该有一个断点

if(a >= 1)
{
    dosomething();
}
else
{
    dosomethingelse();
}
break;
一个常见的异常是对错误条件进行预测试,并在执行操作之前爆发

if(a < 1)
{
    handle_error();
    break;
}

dosomething();
break;
if(a<1)
{
handle_error();
打破
}
dosomething();
打破

这两种方法都可以,但第二种方法肯定是可行的。第一种方法打破了逻辑结构,这从来都不是一种好的做法。

这两种方法都可以,但第二种方法肯定是这样做的。第一个选项打破了逻辑结构,这从来都不是一个好的实践。

一般来说,第二个选项是首选的,有时这完全取决于您的业务测试用例。如果存在多个if-else梯形图,则将使用Switch case,以提高代码的效率和可读性。现在要回答您的问题,请在if/else语句内部还是外部?

场景1:如果你的区块中只有If和else,那么break在哪里并不重要。无论如何,只执行一个bock

场景2:不管case块中的条件如何,都要执行一些代码,然后必须在末尾加上break。

Ex.

    switch(a)
        {
        case 2:
            if(a >= 1)
            {
                dosomething();
            }
            else
            {
                dosomethingelse();
            }
             doSomethingForthisCase();
            break;
        default:
          break;
      }

开关(a)
{
案例2:
如果(a>=1)
{
dosomething();
}
其他的
{
dosomethingelse();
}
dosomethingforthicase();
打破
违约:
打破
}


你还可以考虑更多的场景,比如在其他场景和最后一个场景中放置break。在这种情况下,如果条件满足,则
doSomethingForthisCase()将执行,否则只有else块将执行,等等。一般来说,第二个选项是首选的,有时这完全取决于您的业务测试用例。如果存在多个if-else梯形图,则将使用Switch case,以提高代码的效率和可读性。现在要回答您的问题,请在if/else语句内部还是外部?

场景1:如果你的区块中只有If和else,那么break在哪里并不重要。无论如何,只执行一个bock

场景2:不管case块中的条件如何,都要执行一些代码,然后必须在末尾加上break。

Ex.

    switch(a)
        {
        case 2:
            if(a >= 1)
            {
                dosomething();
            }
            else
            {
                dosomethingelse();
            }
             doSomethingForthisCase();
            break;
        default:
          break;
      }

开关(a)
{
案例2:
如果(a>=1)
{
dosomething();
}
其他的
{
dosomethingelse();
}
dosomethingforthicase();
打破
违约:
打破
}


你还可以考虑更多的场景,比如在其他场景和最后一个场景中放置break。在这种情况下,如果条件满足,则
doSomethingForthisCase()将执行,否则只有else块将执行,等等。

我不知道这是否只是一个坏例子,但在这种情况下,会执行'dosomethingelse()'吗?是的,条件应该是类似于'x'的东西对不起,我只是写了我想到的第一件事哈哈,这是个坏例子,但至少你明白我的意思!谢谢你修复它@KeithNicholas!!!我不知道这是否只是一个坏例子,但是,在这种情况下,会执行'dosomethingelse()'吗?是的,条件应该是带有'x'之类的东西对不起,我只是写了我想到的第一件事哈哈,这是个坏例子,但在lea