&& 短路效果测试

C#:

 static void Main(string[] args)
 {
     bool result = true;
     result &= Func();
     result &= Func();
     result &= Func();
     Console.WriteLine("&= 最后结果:{0}\n", result);
     Console.ReadKey();

     result = result && Func();
     result = result && Func();
     result = result && Func();
     Console.WriteLine("result && 最后结果:{0}\n", result);
     Console.ReadKey();

     result = result & Func();
     result = result & Func();
     result = result & Func();
     Console.WriteLine("result & 最后结果:{0}\n", result);
     Console.ReadKey();
 }

 static bool Func()
 {
     int a = 1;
     int b = 2;
     int c = a + b;
     bool result = c != 3;
     Console.WriteLine("Func 函数 Result = {0}", result);
     return result;
 }

输出:

Func 函数 Result = False
Func 函数 Result = False
Func 函数 Result = False
&= 最后结果:False

Func 函数 Result = False
result && 最后结果:False

Func 函数 Result = False
Func 函数 Result = False
Func 函数 Result = False
result & 最后结果:False

result = result && Func(); 这个有短路效果。

好像没有result &&= Func();这样的写法。

C++:

#include <cstdlib>
#include <iostream>

bool Func()
{
    using namespace std;
    int a = 1;
    int b = 2;
    int c = a + b;
    bool result = c != 3;
    cout << "Func 的结果是:" << result << endl;
    return result;
}

int main()
{
    using namespace std;
    int result = true;
    result &= Func();
    result &= Func();
    result &= Func();
    cout << "&= 的结果是:" << result << endl << endl;

    result = true;
    result = result && Func(); // 这个有短路效果
    result = result && Func();
    result = result && Func();
    cout << "result && 的结果是:" << result << endl << endl;

    result = true;
    result = result & Func(); // 等效 &=
    result = result & Func();
    result = result & Func();
    cout << "result & 的结果是:" << result << endl;

    return 0;
}

输出:

unc 的结果是:0
Func 的结果是:0
Func 的结果是:0
&= 的结果是:0

Func 的结果是:0
result && 的结果是:0

Func 的结果是:0
Func 的结果是:0
Func 的结果是:0
result & 的结果是:0

result = result && Func(); 有短路效果。

好像没有result &&= Func();这样的写法。

posted @ 2024-02-23 08:55  double64  阅读(15)  评论(0)    收藏  举报