📄 教学--第九章 条件分支语句.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 + -