亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++教程:C++ if語句講解

2020-05-23 14:28:30
字體:
來源:轉載
供稿:網友
對于可能發生的事情,我們平時經常會說“如果……,那么……”。語文里,我們叫它條件復句。“如果”之后的內容我們稱為條件,當條件滿足時,就會發生“那么”之后的事件。我們來看這樣一句英語:If mark>90, cout <<”GOOD!” <<endl.把它翻譯成中文就是:如果分數大于90,則輸出GOOD。

其實在程序設計中,也是用“如果”來描述可能發生的情況的。它和剛才的那句英語很相似,具體的語法格式是:
C++教程:C++ if語句講解

C++教程:C++ if語句講解
我們把若干句語句放在一個大括號中,稱為語句塊。運行到該if語句,當條件滿足時,就會執行語句塊內的內容。我們也可以用流程圖(圖4.1.1)來表示if語句。請注意,if語句的結束是沒有分號的,分號只是屬于語句塊中的語句。

一、條件——關系運算

當我們判斷一個條件的時候,依賴于這個條件是真是假。說到真和假,我們不難想到布爾型數據(參見3.1),因為它就是分別用0和1來表示真和假。顯然條件的位置上應該放置一個布爾型的數據。然而,光靠死板的0和1兩個數仍然無法描述可能發生著變化的各種情況。那么我們如何讓電腦來根據實際情況做出判斷呢?

這里我們要引入關系運算。之前的加減乘除和取余數之類的操作,結果都是整型或實型數據。而關系運算的結果則是布爾型數據,也就是說它們的結果只有兩種——真或假。

所謂關系運算,是判斷操作符兩邊數據的關系。這些關系一共有六種,分別是:等于、大于、小于、大于等于、小于等于、不等于。如下表所示:
C++教程:C++ if語句講解

當操作符兩邊的數據符合操作符對應的關系時,運算結果為真,否則為假。比如5>1的結果是1(真),’a’==’a’的結果也是1(真);而3<=2的結果為0(假)等等。特別要注意,==和=是兩個不同的操作符,前者是判斷操作符兩邊數據的關系,后者是把右面的表達式的結果賦值給左邊。

下面我們來看一段程序:(程序4.1.1)
#include "iostream.h"
int main()
{
   int a,b;
   cout <<"請輸入兩個數:";
   cin >>a >>b;
   if (a>b)//如果a比b大,則將兩個數交換
   {
      int temp;//創建一個臨時變量
      temp=a;
      a=b;
      b=temp;
   }
   cout <<a <<" " <<b <<endl;//將兩個數從小到大輸出
   return 0;
}
第一次運行結果:
請輸入兩個數:1 5
1 5
第二次運行結果:
請輸入兩個數:3 2
2 3

算法時間:交換
交換是程序設計中最基礎最常用的一種操作。它的算法在現實生活中也有著形象的操作。交換兩個變量里的數據就好像交換AB兩個碗中的水。我們必須再拿一個碗來(臨時變量),將A碗里面的水先倒到這個臨時的碗里,再將B碗的水倒到空的A碗里,最后把臨時碗里的水再倒回B碗,那么就完成了這個工作。對照著這個過程去閱讀代碼是不是有些理解了呢?至于這個算法的代碼,也是非常好記的。記住把臨時變量放在首位,然后把任一變量放在等號的右邊,下一句語句開頭的必然也是這個變量。簡單地記就是首尾相連。(程序4.1.1的代碼中用相同的顏色表示出“首尾相連”。)
這個程序完成的工作是將兩個無序的整數從小到大地輸出。即如果第一個數比第二個數大,先交換再輸出,否則直接輸出。

二、條件——邏輯運算

學校評三好學生,候選人必須要德智體全面發展才能夠評上;學校開運動會,運動員只要在某一個項目上是全校第一就能夠獲得冠軍。現實生活中,有些條件會很嚴格,要數項同時滿足時才算符合條件;而有些條件又會很松,只要符合其中某一項就算符合條件了。在程序設計中,我們也會遇到這樣的問題。

平時,我們往往是用“并且”和“或”兩個詞來描述這些情況的。而在程序設計中,我們用邏輯運算來描述。我們平時稱它們“與”(相當于并且)、“或”、“非”。“邏輯與”的操作符是&&,“邏輯或”的操作符是||,“非”的操作符是!。下面三個真值表說明了各邏輯運算的結果。
C++教程:C++ if語句講解

上面兩表的第一行和第一列分別是邏輯操作符兩側的值,右下角帶有灰色底紋的四格是經過運算后的結果。
C++教程:C++ if語句講解

如果我們用集合A和集合B分別來描述兩個不相同的條件A和B,那么A&&B表示要滿足集合A與集合B的交集;A||B表示要滿足集合A與集合B的并集;!A表示要滿足集合A的補集。

在上一章的3.3簡單表達式中,我們提到了運算的次序。在程序設計中,我們把這種運算的次序稱作操作符(Operator)的優先級。那么,關系操作符和邏輯操作符的優先級是怎么樣的呢?

和簡單表達式一樣,括號的優先級仍然是最高的。無論什么情況都應該先從左到右地計算括號內的結果。當算術操作符、關系操作符和邏輯操作符處于同一級的括號中時,則分別從左向右地依次進行邏輯非運算、算術運算(遵循算術運算的優先級)、關系運算、邏輯與運算和邏輯或運算。(記作“不算關羽活”)。

下面我們來實踐一下,看一段程序:(程序4.1.2)
#include "iostream.h"
int main()
{
   int mark;
   cout <<"請輸入成績(0~100): ";
   cin >>mark;
   if (mark>=80 && mark <=100) cout <<"Good!" <<endl;
   if (mark>=60 && mark <80) cout <<"So so" <<endl;
   if (mark>=0 && mark <60) cout <<"Please work harder!" <<endl;
   if (mark<0 || mark >100) cout <<"ERROR!" <<endl;
   return 0;
}
第一次運行結果:
請輸入成績(0~100):100
Good!
第二次運行結果:
請輸入成績(0~100):75
So so
第三次運行結果:
請輸入成績(0~100):59
Please work harder!
第四次運行結果:
請輸入成績(0~100):105
ERROR!

我們可以看到,將關系運算和邏輯運算配合使用,可以將數值有效地分段。以上這段程序的功能就是按照不同段的數值輸出不同的結果,如果輸入的數值超出正常的取值范圍,則輸出出錯信息。

算法時間:糾錯
熟悉電腦軟件的同學都知道,不少軟件或程序有時候會有漏洞(Bug),使得程序的安全性或穩定性受到影響。而產生這些漏洞的部分原因就是程序員在設計程序時有所疏漏,忘記了去考慮一些可能引起錯誤的特殊情況。我們把這些可能引起程序異常的情況稱為臨界情況。比如在a/b中,b=0就是一種臨界情況。如果不考慮到這種情況,則可能導致除數為零而使整個程序崩潰。我們學會了if語句以后就能夠從一定程度上避免一些可以預知的錯誤,把那些臨界情況引入糾錯程序。(比如輸出出錯信息,或及時中止程序)

三、&&和||的妙用

有時候我們做數學題目會遇到這樣的問題——(1+5*8)/6*0/(5/6+2),當我們發現整個式子是乘式,并且有一個乘數為0的時候,則會不再做更多的計算,把結果脫口而出。因為無論后面的乘數是什么,都無法改變結果了。

根據真值表我們知道,在邏輯與中,只要有一個假則整個表達式的結果為假;在邏輯或中,只要有一個是真則整個表達式的結果為真。我們發現邏輯與、邏輯或和上面所說的例子有著相似之處,那么電腦會不會像我們一樣,不再做更多無所謂的計算呢?

答案是肯定的。即在一個或多個連續的邏輯與中,一旦出現一個假,則結果為假,處于該位置以后的條件不再做更多判斷;在一個或多個連續的邏輯或中,一旦出現一個真,則結果為真,處于該位置以后的條件也不再做更多判斷。
比如: if (m!=0 && n/m<1)
{
cout <<”OK” <<endl;
}
當m=0時,電腦不會去嘗試用n/m了,而是直接跳過整句語句。這樣,我們就能夠避免除數為零的錯誤了。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久亚洲国产300| 国产精品国模在线| 久久久精品视频成人| 亚洲娇小xxxx欧美娇小| 成人欧美一区二区三区在线湿哒哒| 国模叶桐国产精品一区| 欧美又大粗又爽又黄大片视频| 亚洲精品视频免费| 狠狠躁天天躁日日躁欧美| 国产精品一区二区三区毛片淫片| 黑人巨大精品欧美一区二区免费| 国产精品久久99久久| 国内外成人免费激情在线视频| 亚洲国产高清自拍| 日韩在线免费视频观看| 欧美电影免费观看| 日韩美女视频免费在线观看| 亚洲第一网站免费视频| 国产精品男人的天堂| 亚洲欧美日韩天堂| 97欧美精品一区二区三区| 91精品国产综合久久久久久久久| 欧美成人四级hd版| 精品国产老师黑色丝袜高跟鞋| 国产精品久久久久99| 成人激情视频在线播放| 高清欧美电影在线| 国产成人小视频在线观看| 欧美成人午夜免费视在线看片| 日韩中文字幕视频在线观看| 尤物yw午夜国产精品视频明星| 国产亚洲成av人片在线观看桃| 97在线视频免费| 秋霞午夜一区二区| 日韩毛片在线看| 精品久久久久久久久中文字幕| 国产亚洲精品一区二区| 91亚洲国产成人久久精品网站| 热久久这里只有精品| 日韩电视剧在线观看免费网站| 日韩在线视频免费观看高清中文| 国产精彩精品视频| 亚洲欧美日韩精品| 欧美午夜精品久久久久久浪潮| 2018日韩中文字幕| 中文字幕欧美国内| 亚洲欧美制服另类日韩| 国产欧美日韩中文| 久久精品一本久久99精品| 亚洲激情久久久| 国产精品日韩电影| 第一福利永久视频精品| 黄色一区二区在线| 久久久国产精品一区| 日韩福利在线播放| 亚洲色图18p| 日韩精品高清视频| 成人网在线视频| 欧美在线播放视频| 亚洲a成v人在线观看| 久久久久亚洲精品国产| 日本高清不卡在线| 国产精品久久久久久久电影| 亚洲色图综合久久| 亚洲男人的天堂在线播放| 亚洲欧美日韩中文在线制服| 国产精品一区av| 97成人在线视频| 国产精品成人免费视频| 国产精品香蕉在线观看| 亚洲性日韩精品一区二区| 国产有码在线一区二区视频| 国产99视频精品免视看7| 亚洲精品第一国产综合精品| 国产成人av在线播放| 亚洲国产天堂久久综合网| 亚洲国产天堂久久综合网| 久久亚洲欧美日韩精品专区| 亚洲视频axxx| 亚洲国产精品99久久| 亚洲综合色av| 成人国产在线视频| 日日狠狠久久偷偷四色综合免费| 92看片淫黄大片看国产片| 97**国产露脸精品国产| 在线亚洲欧美视频| 国产精品入口免费视频一| 亚洲欧美日韩精品| 国产一区二区三区在线免费观看| 中文字幕av一区| 久久不射电影网| 一区二区三区在线播放欧美| 久久这里只有精品99| 久久久在线免费观看| 九九热最新视频//这里只有精品| 亚洲免费电影在线观看| 最近更新的2019中文字幕| 日韩激情视频在线播放| 欧美色道久久88综合亚洲精品| 亚洲电影中文字幕| 在线色欧美三级视频| 中文字幕日韩av综合精品| 日韩精品中文字幕久久臀| 国产一区二中文字幕在线看| 久久成人这里只有精品| 国产精品偷伦一区二区| 97在线免费视频| 国产精品99久久久久久久久| 韩国精品美女www爽爽爽视频| 国产精品国产自产拍高清av水多| 日本久久久a级免费| 色悠久久久久综合先锋影音下载| 久久久久久有精品国产| 91影视免费在线观看| 欧美日韩激情网| 韩国日本不卡在线| 亚洲视频第一页| 亚洲夜晚福利在线观看| 欧美久久精品一级黑人c片| 欧美午夜精品久久久久久浪潮| 午夜精品免费视频| 国产欧亚日韩视频| 中文在线不卡视频| 国产精品成人观看视频国产奇米| 成人黄色中文字幕| 青草青草久热精品视频在线观看| 亚洲在线观看视频| 日本久久中文字幕| 91av在线精品| 91精品视频在线播放| 国产不卡av在线免费观看| 国产精品久久99久久| 亚洲永久在线观看| 国产精品丝袜高跟| 精品人伦一区二区三区蜜桃免费| 国产主播在线一区| 精品网站999www| 欧美日韩国产综合新一区| 国产一区二区三区免费视频| www日韩欧美| 26uuu另类亚洲欧美日本一| 久久精品精品电影网| 亚洲最新在线视频| 中文字幕日韩免费视频| 日韩毛片在线看| 成人免费福利在线| 精品中文字幕在线| 国内精久久久久久久久久人| 亚洲精品国产电影| 在线国产精品视频| 国产精品a久久久久久| 最新69国产成人精品视频免费| 欧美精品videos另类日本| 国产一区二区三区网站| 亚洲精品白浆高清久久久久久| 国产日韩中文字幕| 国模精品一区二区三区色天香| 日韩精品在线视频| 日韩国产高清污视频在线观看| 性色av一区二区三区红粉影视| 日韩中文字幕国产| 国产精品美女免费看| 欧美高清视频一区二区| 成人免费在线视频网站|