C++短路求值(邏輯與、邏輯或)實(shí)例
本文實(shí)例講述了C++短路求值(邏輯與、邏輯或),分享給大家供大家參考。具體方法分析如下:
1、邏輯或的短路
首先看如下代碼:
#include <iostream>
using namespace std;
int main()
{
int a = 1;
cout << "a = " << a <<endl;
true || (a=0);
cout << "a = " << a <<endl;
}
運(yùn)行結(jié)果如下:
a = 1 a = 1
邏輯或的表現(xiàn)形式如下:
expression1 || exexpression2
這里用到了邏輯或,由于邏輯或的短路,expression1為true,則后面的expression2(即:(a=0) )不再求值,整個(gè)表達(dá)式的結(jié)果為true,所以a的值仍為1,沒(méi)有改變。
2、邏輯與的短路
首先看如下代碼:
#include <iostream>
using namespace std;
int main()
{
int a = 1;
cout << "a = " << a <<endl;
false && (a=3);
cout << "a = " << a <<endl;
}
運(yùn)行結(jié)果如下:
a=1 a=1
邏輯與的表現(xiàn)形式如下:
expression1 && exexpression2
上述代碼中用到了邏輯與,由于邏輯與的短路,expression1為false,則后面的expression2不再求值,整個(gè)的結(jié)果為false,所以a的值沒(méi)有改變。
3、應(yīng)用舉例
這里以CSDN上的一個(gè)帖子為例(http://topic.csdn.net/u/20121011/10/c7e0a805-b4e2-44db-9d71-455f5f851240.html ):
不用if語(yǔ)句,不用匯編,怎么使得兩數(shù)之積總是小于等于255?
大家看過(guò)帖子會(huì)發(fā)現(xiàn)有很多方法,比如最簡(jiǎn)單的條件表達(dá)式:
result = ((a*b) > 255) ? 255 : a*b;
這個(gè)是最先被人提出的,但好像樓主不認(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;
}
}
運(yùn)行效果如下:

希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
C++實(shí)現(xiàn)冒泡排序(BubbleSort)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)冒泡排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
Qt編寫(xiě)地圖之實(shí)現(xiàn)經(jīng)緯度坐標(biāo)糾偏
地圖應(yīng)用中都涉及到一個(gè)問(wèn)題就是坐標(biāo)糾偏的問(wèn)題,這個(gè)問(wèn)題的是因?yàn)楦鶕?jù)地方規(guī)則保密性要求不允許地圖廠商使用標(biāo)準(zhǔn)的GPS坐標(biāo),而是要用國(guó)家定義的偏移標(biāo)準(zhǔn)。本文將詳細(xì)講解如何在Qt中實(shí)現(xiàn)經(jīng)緯度坐標(biāo)糾偏,需要的可以參考一下2022-03-03
如何用C寫(xiě)一個(gè)web服務(wù)器之基礎(chǔ)功能
C語(yǔ)言是一門很基礎(chǔ)的語(yǔ)言,程序員們對(duì)它推崇備至,本文將帶著大家來(lái)看一下,如何用C寫(xiě)一個(gè)web服務(wù)器。2021-05-05
C++遞歸實(shí)現(xiàn)螺旋數(shù)組的實(shí)例代碼
這篇文章主要介紹了C++遞歸實(shí)現(xiàn)螺旋數(shù)組的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

