C ++:无论如何都知道是什么触发了If-Statement?

时间:2017-04-16 09:07:18

标签: c++

假设我有一个这样的if语句:

if ( x < 0 || y < 0 || z < 0) {
  cout << "Something is less than zero!"; 
}

无论如何知道拆分中的哪个分离触发了if语句?或者是否有必要编写三个单独的if语句来实现这一目标?

编辑:目标是短路过程。显然,编写除三个单独的if-then语句之外的任何代码(对于这种情况)都不适用于此目标。

2 个答案:

答案 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。你所知道的至少是其中一个(但可能不止一个)。