C++:无论如何,有什么可以知道是什么触发了 If 语句



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

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

有没有办法知道析取中的哪个析取触发了 if 语句?还是有必要编写三个单独的 if 语句来实现这个目的?

编辑:目标是缩短该过程。显然,编写超过三个单独的 if-then 语句的代码(对于这种情况(都无法实现此目标。

说到愚蠢的复杂方法:

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";
}

在这种情况下,答案是否定的,如果不为每个变量添加额外的嵌套 ifs,你就无法真正判断三个变量中的哪一个是 0 <。你所知道的是,其中至少有一个(但可能不止一个(是。

最新更新