雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C++短路求值(邏輯與、邏輯或)實例

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

本文實例講述了C++短路求值(邏輯與、邏輯或),分享給大家供大家參考。具體方法分析如下:

1、邏輯或的短路

首先看如下代碼:

#include <iostream>
using namespace std;
int main()
{
  int a = 1;
  cout << "a = " << a <<endl;
  true || (a=0);
  cout << "a = " << a <<endl;
}

運行結(jié)果如下:

a = 1

a = 1

邏輯或的表現(xiàn)形式如下:

expression1 || exexpression2

這里用到了邏輯或,由于邏輯或的短路,expression1為true,則后面的expression2(即:(a=0) )不再求值,整個表達式的結(jié)果為true,所以a的值仍為1,沒有改變。

2、邏輯與的短路

首先看如下代碼:

#include <iostream>
using namespace std;
int main()
{
  int a = 1;
  cout << "a = " << a <<endl;
  false && (a=3);
  cout << "a = " << a <<endl;
}

運行結(jié)果如下:

a=1

a=1

邏輯與的表現(xiàn)形式如下:

expression1 && exexpression2

上述代碼中用到了邏輯與,由于邏輯與的短路,expression1為false,則后面的expression2不再求值,整個的結(jié)果為false,所以a的值沒有改變。

3、應(yīng)用舉例

這里以CSDN上的一個帖子為例(http://topic.csdn.net/u/20121011/10/c7e0a805-b4e2-44db-9d71-455f5f851240.html ):

不用if語句,不用匯編,怎么使得兩數(shù)之積總是小于等于255?

大家看過帖子會發(fā)現(xiàn)有很多方法,比如最簡單的條件表達式:

result = ((a*b) > 255) ? 255 : a*b;

這個是最先被人提出的,但好像樓主不認(rèn)同,那就試下以下兩種方式:

用邏輯或的短路:

bool tmp = ((result = a*b) < 255) || (result=255);

用邏輯與的短路:

bool tmp = ((result = a*b) >= 255) && (result=255);

完整代碼如下:

#include <iostream>
using namespace std;
int main()
{
  int a,b,result;
  while (true)
  {
    cin>>a>>b;
//    result = ((a*b) > 255) ? 255 : a*b;
//    bool tmp = ((result = a*b) < 255) || (result=255);
    bool tmp = ((result = a*b) >= 255) && (result=255);
    cout<<result<<endl;
  }
}

運行效果如下:

希望本文所述對大家的C++程序設(shè)計有所幫助。

上一篇:C++ COM編程之QueryInterface函數(shù)(二)

欄    目:C語言

下一篇:C++ COM編程之接口背后的虛函數(shù)表

本文標(biāo)題:C++短路求值(邏輯與、邏輯或)實例

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/3312.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有