3、dio.h>voidmain(){inti;i=6;printf(“%3d%3d%3d”,i<=4,i!=9,7>i>5);}C中,真為1,假為0。注:關(guān)系表達(dá)式成立,結(jié)果為1,否則為0。邏輯運(yùn)算符&&,
4、
5、,!表達(dá)式1&&表達(dá)式2//邏輯與只有當(dāng)表達(dá)式1和表達(dá)式2均為真(非0),結(jié)果為真(1)。表達(dá)式1
6、
7、表達(dá)式2//邏輯或只要表達(dá)式1、表達(dá)式2有1個(gè)為真(非0),結(jié)果為真(1)。!表達(dá)式//邏輯非表達(dá)式為真(非0),結(jié)果為假(0)表達(dá)式為假(0),結(jié)果為真(1)#includevoidmain(){inti,result;i=6;re
8、sult=i&&i>5cout<,>===,!=&&
9、
10、關(guān)于關(guān)系、邏輯運(yùn)算符的詳細(xì)內(nèi)容參見(jiàn)王敬華書(shū)P111圖5.2&&、
11、
12、的計(jì)算順序表達(dá)式1
13、
14、表達(dá)式2根據(jù)
15、
16、的定義,只要表達(dá)式1為真,結(jié)果為真。因此在計(jì)算表達(dá)式1
17、
18、表達(dá)式2時(shí),若式1為真,式2不計(jì)算。例:intn,a=-1;n=10;printf(“%dt%d”,n
19、
20、(a=a+1
21、),a);表達(dá)式1&&表達(dá)式2根據(jù)&&的定義,只要表達(dá)式1為假,結(jié)果必為假。因此在計(jì)算表達(dá)式1&&表達(dá)式2時(shí),若式1為假,式2不計(jì)算。例:intn,a=-1;n=0;printf(“%dt%d”,n&&(a=a+1),a);bool—布爾型C++基本數(shù)據(jù)類型,邏輯型bool值只有true(1)或false(0)用于關(guān)系表達(dá)式或邏輯表達(dá)式判定中boolflag;flag=!(year%400)
22、
23、!(year%4)&&year%100;3.3if語(yǔ)句if語(yǔ)句語(yǔ)法if(表達(dá)式)語(yǔ)句;if(表達(dá)式){語(yǔ)句;}流程圖表達(dá)式語(yǔ)句假真多于一個(gè)語(yǔ)句,構(gòu)成復(fù)合語(yǔ)句,加{}if
24、語(yǔ)句語(yǔ)義當(dāng)且僅當(dāng)表達(dá)式為真時(shí),執(zhí)行語(yǔ)句(復(fù)合語(yǔ)句)。練習(xí)編程:鍵入一字符,若是’b’,則響鈴。exp3_2.cppcharch;1)ch=getche();#include2)ch=getchar();#include空語(yǔ)句例:寫(xiě)出程序運(yùn)行結(jié)果。#include#includevoidmain(){cout<<"plsinputthebkeytohearabell.";//提示信息charch;ch=gete();//輸入一個(gè)字符if(ch==‘b’);cout<<'a';}空語(yǔ)句;
25、if(ch==‘b’);count<<‘a(chǎn)’;//不管輸入何字符,都會(huì)響鈴if…else語(yǔ)句語(yǔ)法if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;流程圖表達(dá)式語(yǔ)句2語(yǔ)句1假真語(yǔ)義若表達(dá)式為真,執(zhí)行語(yǔ)句1;否則,執(zhí)行語(yǔ)句2。練習(xí)編程:輸入數(shù)a、b,輸出最大值。exp3_3.cpp條件運(yùn)算符語(yǔ)法表達(dá)式1?表達(dá)式2:表達(dá)式3語(yǔ)義計(jì)算表達(dá)式1,若為真,則計(jì)算表達(dá)式2,作為結(jié)果值,否則計(jì)算表達(dá)式3,作為結(jié)果值。注:C++中唯一一個(gè)三目運(yùn)算符,if…else語(yǔ)句的替代。練習(xí)用條件運(yùn)算符改寫(xiě)exp3_3.cpp。max=a>=b?a:b;exp3_4.cpp練習(xí)例:寫(xiě)出下列程序的運(yùn)行結(jié)