?? 教學--第九章 條件分支語句.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://d2school.com/bcyl/bhcpp/newls/ls09.htm -->
<HTML><HEAD><TITLE>教學--第九章 條件分支語句</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>P {
MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.節標題 {
FONT-WEIGHT: bold; FONT-SIZE: 12pt
}
TD {
FONT-SIZE: 9pt
}
.tdtitle {
FONT-SIZE: 20pt
}
.celltopline {
BORDER-TOP: #000000 1px solid
}
.menucell {
FONT-SIZE: 10pt
}
#glowtext {
FONT-SIZE: 10pt; FILTER: glow(color=red,strength=1); WIDTH: 100%
}
A:link {
FONT: 10pt 宋體; COLOR: blue; TEXT-DECORATION: none
}
A:visited {
FONT: 10pt 宋體; COLOR: purple; TEXT-DECORATION: none
}
A:active {
FONT: 10pt 宋體; COLOR: red; TEXT-DECORATION: underline
}
A:hover {
COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=3><!-- 標題 --><!--標題結束 --><A name=頁首></A>
<CENTER>
<TABLE height=154 cellSpacing=4 cellPadding=4 width=760 border=0>
<TBODY>
<TR>
<TD
style="FONT-SIZE: 10pt; MARGIN-LEFT: 12px; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; MARGIN-RIGHT: 12px; FONT-FAMILY: 宋體"
width="100%" height=148>
<H2>第九章 條件分支語句</H2>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls09.htm#9.1">9.1
if...else 語句</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls09.htm#9.2">9.2 if...
語句</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls09.htm#9.3">9.3 ? :
表達式</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls09.htm#9.4">9.4 多級
if...else...語句</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls09.htm#9.5">9.5 switch
語句</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls09.htm#9.6">9.6
小結</A></P>
<P> </P>
<P>"to be or not be"? </P>
<P>這個問題深深地困擾著哈姆雷特。他必須在“生存還是毀滅”之間做出一個選擇,這是一個困難的選擇。</P>
<P>在你的人生中,您曾經面對什么選擇?</P>
<P>“學編程還是不學編程”?</P>
<P>“學CB還是學VC”?</P>
<P> </P>
<P>選擇哪一個,最終總要是要決定,不同的是每個人在作出選擇時所要面對的不同條件。前一章我們講“順序流程”就好像長安街一樣筆直的,從頭走到尾;這一章我們要講的“條件分支流程”,就像是在道路上遇到了分叉,是直行還是右拐?全看程序走到分叉時所碰上的條件。</P>
<P> </P>
<H3><A name=9.1>9.1</A> if...else 語句</H3>
<P>if,中文意思“如果”……</P>
<P>痞子蔡說: “如果把整個太平洋的水倒出,也澆不熄我對你愛情的火”。
多么充滿感情的話!當然,這一切僅僅是因為你還沒有學過編程。如果你學了編程,學了本章,你就會明白這是一句多么冰涼的條件分支語句,正如它后面的那句所揭示的一切:“整個太平洋的水全部倒得出嗎?不行。所以我并不愛你”。來看看if...else
語句在C,C++語言中如何使用。</P>
<P> </P>
<P><B>if...else 語法格式:</B></P>
<P> </P>
<P>if (條件)</P>
<P>{</P>
<P> 分支一</P>
<P>}</P>
<P>else</P>
<P>{</P>
<P> 分支二</P>
<P>}</P>
<P> </P>
<P>其中,“條件”由表達式如何,典型的如關系表達式(忘了什么叫“關系表達式”?回頭找找講小情侶遇校監那章)。“分支一”和“分支二”表示當條件成立時和不成立分別要執行語句。用一句表達,就是:<B>如果</B>條件成立(也稱條件為真),那么程序執行分支一中的語句,<B>否則</B>(條件為假)程序執行分支二的語句。這就是if...else語句。</P>
<P>舉一生活中的例子:</P>
<P> </P>
<P>if (我中了這一期體彩的500萬大獎)</P>
<P>{</P>
<P> 我買房;</P>
<P> 我買車;</P>
<P> 我去歐洲旅游;</P>
<P>}</P>
<P>else</P>
<P>{</P>
<P> 我要修理自行車;</P>
<P> 我買下一期體彩,</P>
<P> 我繼續燒香。</P>
<P>}</P>
<P> </P>
<P>上面的例子中:</P>
<P>{ </P>
<P> 我買房;</P>
<P> 我買車;</P>
<P> 我去歐洲旅游;</P>
<P>}</P>
<P> </P>
<P>這是第一個分支,而:</P>
<P>{ </P>
<P> 我要修理自行車;</P>
<P> 我買下一期體彩,</P>
<P> 我繼續燒香。</P>
<P>}</P>
<P> </P>
<P>這是第二個分支。到底我將執行哪個分支,依賴于條件:“我中了這一期體彩的500萬大獎”是否成立。在夢中,我經常很開心地執行第一個分支,因為那個條件只能在夢中成立。</P>
<P> </P>
<P>來一段真實的程序:</P>
<P> </P>
<P>設a,b,c為已定義的三個int變量,有以下代碼片段:</P>
<P> </P>
<P>if (a > b)</P>
<P>{</P>
<P> c = 1;</P>
<P>}</P>
<P>else</P>
<P>{</P>
<P> c = 0;</P>
<P>}</P>
<P> </P>
<P>若a值為2,b值為1,那么執行上面代碼,c的值將為1;相反,如果a值為1,b值為1,由于條件:a >
b不成立,所以程序將執行else后面一對{}中的代碼,結果將是c值為0。</P>
<P> </P>
<P class=MsoNormal><SPAN lang=EN-US>用流程圖可以直觀在表達程序的執行可能的方向。我們來看
if...else...的流程圖:<O:P> </P>
<P> </P>
<P><IMG height=324 src="教學--第九章 條件分支語句.files/ls09t4.gif" width=296
border=0></P>
<P>箭頭表示了程序可能的走向,當遇到條件(菱形)時,根據條件成立的真假,程序將作出選擇,是走分支一還是分支二。但無論經過哪個分支,最后都將同樣繼續后面的代碼。</P>
<P> </P>
<P><B>上機題目一:</B>用戶輸入一個整數,請寫一程序,通過if...else...判斷該數是偶數或奇數。</P>
<P> </P>
<P>解題:被2整除的整數叫偶數,什么叫整除?就是除了以后余數為0啊。還得我們學過一個操作符是用來求兩數相除的余數嗎?(如果不記得,先自覺到墻角站10分鐘,然后找<A
href="http://d2school.com/bcyl/bhcpp/newls/ls07.htm">第七章</A>復習)。</P>
<P>% 操作符用來求兩數相除的余數,比如 5 % 2 得到余數1。那么一個數,比如 a,是否偶數,條件就是 (a % 2) == 0。(對 ==
也看著也有點生疏?20分鐘!然后還找第七章)。 </P>
<P> </P>
<P>打CB,然后新建一個空白控制臺工程。在代碼中加下以下黑體部分:</P>
<P> </P>
<P>//---------------------------------------------------------------------------</P>
<P><B>#include <iostream.h></B></P>
<P>#pragma hdrstop</P>
<P>//---------------------------------------------------------------------------</P>
<P>#pragma argsused</P>
<P>int main(int argc, char* argv[])</P>
<P>{</P>
<P><B> int num;</B></P>
<P> </P>
<P><B> cout << "請輸入一個整數:";</B></P>
<P> </P>
<P><B> cin >> num;</B></P>
<P> </P>
<P><B> if((num % 2) == 0)</B></P>
<P><B> cout << num << "是一個偶數。"
<< endl;</B></P>
<P><B> else</B></P>
<P><B> cout << num << "是一個奇數。"
<< endl;</B></P>
<P> </P>
<P><B> getchar();</B></P>
<P> return 0;</P>
<P>}</P>
<P>//---------------------------------------------------------------------------<BR></P>
<P>按F9編譯并運行程序后,筆者輸入123,以下是屏幕顯示結果:</P>
<P><IMG height=94 src="教學--第九章 條件分支語句.files/ls09t6.gif" width=214
border=0></P>
<P> </P>
<H3></SPAN><A name=9.2>9.2</A> if... 語句</H3><SPAN lang=EN-US>
<P> </P>
<P>if...else...中的
else(否則)并不是必須的,因為有時候,當指定條件成立時,我們執行某些動作,否則,我們不執行那些動作。用流程圖表示就是:</P>
<P><IMG height=324 src="教學--第九章 條件分支語句.files/ls09t5.gif" width=250
border=0></P>
<P>對比if...else...的流程圖,我們發現if...語句中,當條件不成立時,將繞過分支一的語句,直接執行后面的代碼。</P>
<P> </P>
<P><B>if...語句格式:</B>
<P>
<P>if (條件)
<P>{
<P> 分支一
<P>}
<P>
<P>來看這個例子,然后做出你的判斷:
<P>if (我每天賺100萬)
<P>{
<P> 我每天都將100成中的90萬分給你。
<P>}
<P>看完上面的“程序”,你覺得我是個大方的人嗎?看起來是噢,但問題是我永遠也無法每天賺100萬,所以關于“我每天都將100成中的90萬分給你” 整個是在窮開心呵。同樣的道理,你自已分析痞子蔡的那句話吧。
<P>
<P><B>上機題目二:</B>用戶輸入一個字符,用程序判斷是否為小寫字母,如果是,請輸出“您輸入的字符是小寫字母”。</P>
<P>解題:如何判斷一個字符是小寫字母?讓我們查一下<A
href="http://d2school.com/bcyl/bhcpp/newls/ls05.htm">第五章</A>中的ASCII碼表。在表里頭,小寫字母(
a ~ z)對應的ASCII值為:</P>
<P> </P>
<TABLE width="41%" border=1>
<TBODY>
<TR>
<TD width="50%" bgColor=#c0c0c0><SPAN lang=EN-US>97 ~
122 </SPAN></TD>
<TD width="50%"><SPAN lang=EN-US>a ~ z</SPAN></TD></TR></TBODY></TABLE>
<P>
<P>可見,所有小寫字母的值是連續的。那么,判斷一個字符是否為小寫字母,就看它的值是否大于等于97,并且小于等122。
<P>假設一個字符變量: a;要判斷它是否“大于等于97,并且小于等122”--
<P>你<B>不能</B>這樣寫:
<P>if ( 97 <= a <= 122) //錯誤!
<P>
<P>你應該使用 && 來表達"并且":
<P>if (a >= 97 && a <= 122)
<P>
<P>當然,更直觀,更不易出錯的寫法,是直接使用字符,而不是使用字符的ASCII值:
<P>if (a >= 'a' && a <= 'z')
<P>
<P>新建一個控制臺空白工程。然后在代碼中輸入以下黑體部分:
<P>
<P>//---------------------------------------------------------------------------
<P><B>#include <iostream.h></B>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -