假设我有一个这样的if语句:
if ( x < 0 || y < 0 || z < 0) {
cout << "Something is less than zero!";
}
无论如何知道拆分中的哪个分离触发了if语句?或者是否有必要编写三个单独的if语句来实现这一目标?
编辑:目标是短路过程。显然,编写除三个单独的if-then语句之外的任何代码(对于这种情况)都不适用于此目标。
答案 0 :(得分:2)
说到愚蠢的复杂方法:
convoluted_and_stupid( x < 0, y < 0, z < 0 );
void convoluted_and_stupid( bool xlz, bool ylz, bool zyz )
{
if( xlz || ylz || zlz )
cout << "something is less than zero!\n";
if( xlz )
cout << "it is x!\n";
if( ylz )
cout << "it is y!\n";
if( zlz )
cout << "it is z!\n";
}
答案 1 :(得分:0)
只是在上下文中,答案是否定的,你无法确定三个变量中的哪一个是&lt; 0而不为每个变量添加额外的嵌套ifs。你所知道的至少是其中一个(但可能不止一个)。