C++ 如何将两个if语句合并为一个

C++ 如何将两个if语句合并为一个,c++,C++,嗨,我有这两个独立的if语句,如果这样说的话 if (powerlevel <= 0) // <--- ends up having no effect if (src.health <= 0) the_thing_to_do(); if(powerlevel如果您希望同时满足这两个条件(逻辑和),请使用运算符&&) 如果希望这两个语句都为true,请使用逻辑AND if(powerlevel <= 0 && src.health <= 0

嗨,我有这两个独立的
if
语句,如果这样说的话

if (powerlevel <= 0) // <--- ends up having no effect
if (src.health <= 0)
    the_thing_to_do();

if(powerlevel如果您希望同时满足这两个条件(逻辑和),请使用
运算符&&


如果希望这两个语句都为true,请使用逻辑AND

if(powerlevel <= 0 && src.health <= 0) { .. }
if(powerlevel <= 0 && src.health <= 0) 

if(powerlevel这取决于您是否希望两者都计算为true

if ((powerlevel <= 0) && (src.health <= 0)) {
  // do stuff
}

if((powerlevel或如果不想使用&&可以使用三元运算符

#include <iostream>

int main (int argc, char* argv[])
{
  struct
  {
      int health;
  } src;

  int powerlevel = 1;
  src.health = 1;

 bool result((powerlevel <= 0) ? ((src.health <=0) ? true : false)  : false);

 std::cout << "Result: " << result << std::endl;
}
#包括
int main(int argc,char*argv[])
{
结构
{
国际卫生组织;
}src;
int powerlevel=1;
src.health=1;

bool result((powerlevel如果有意义的话,它只是一个本族语(有时)


任何学习资源都应该在if语句之后很快解决这个问题。你说的“最终没有效果”是什么意思?只是出于好奇,第一个语句会有什么效果?因为缺少{}是的,它只会影响第二个if语句,对吗?而不是“thing”to“do”@puntflused:the“thing”to“do”由第二个if语句控制,因此第一个if powerlevel测试控制它(以及后面的任何其他语句)。换句话说,这两个if有效地形成了一个逻辑and“&”,这样,只有当两个变量都不是正数时才能执行“thing”to“do”。逻辑运算符上也有几个SO线程:我非常喜欢三元运算符,但是
(x?true:false)
…?Yikes!;-)是的,我同意这一点,但其他人已经建议了&&版本,我想我应该向他介绍这个概念,因为他想在一行中找到一种方法。
if ((powerlevel <= 0) && (src.health <= 0)) {
  // do stuff
}
if ((powerlevel <= 0) || (src.health <= 0)) {
  // do stuff
}
#include <iostream>

int main (int argc, char* argv[])
{
  struct
  {
      int health;
  } src;

  int powerlevel = 1;
  src.health = 1;

 bool result((powerlevel <= 0) ? ((src.health <=0) ? true : false)  : false);

 std::cout << "Result: " << result << std::endl;
}
Both true:
if (!(src.health > 0  || powerlevel > 0)) {}

at least one is true:
if (!(src.health > 0  && powerlevel > 0)) {}