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)) {}