在if语句中进行赋值

时间:2014-05-22 07:48:24

标签: c++ if-statement

我有以下问题

在我的应用中,我有严格的if语句

 if ( (number >= 1 && number <= 18) && !strcmp("half1-18", _myBetCh) ) {

 }

现在我意识到我必须拆分这个条件,因为我需要一个条件后的布尔变量

  bool success = false, 
  if(!strcmp("half1-18", _myBetCh) {
      success = true; 
      if (number >= 1 && number <= 18) {

      }
  }

这有解决方法吗?例如,是否可以使用if语句进行赋值?

2 个答案:

答案 0 :(得分:2)

这是可能的,像这样:

if ((success = !strcmp("half1-18", _myBatCh)) && number > 1 && number < 18)

但我个人认为条件中的作业是混乱的,难以阅读,并且更喜欢这种变化:

bool success = strcmp("half1-18", _myBetCh) == 0;  
if (success && number >= 1 && number <= 18) {
    // ...
}

答案 1 :(得分:1)

嗯,有:

if ( !strcmp("half1-18", _myBatCh) && (success = true, number > 1 && number < 18) )

或者,无需提前success = false

if ( (success = !strcmp("half1-18", _myBatCh)) && number > 1 && number < 18 )

你的方式更容易阅读,所以我会考虑坚持你所拥有的。