第九章条件分支语句中国工商指南Word下载.docx

上传人:b****6 文档编号:20167580 上传时间:2023-01-17 格式:DOCX 页数:23 大小:53.33KB
下载 相关 举报
第九章条件分支语句中国工商指南Word下载.docx_第1页
第1页 / 共23页
第九章条件分支语句中国工商指南Word下载.docx_第2页
第2页 / 共23页
第九章条件分支语句中国工商指南Word下载.docx_第3页
第3页 / 共23页
第九章条件分支语句中国工商指南Word下载.docx_第4页
第4页 / 共23页
第九章条件分支语句中国工商指南Word下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第九章条件分支语句中国工商指南Word下载.docx

《第九章条件分支语句中国工商指南Word下载.docx》由会员分享,可在线阅读,更多相关《第九章条件分支语句中国工商指南Word下载.docx(23页珍藏版)》请在冰豆网上搜索。

第九章条件分支语句中国工商指南Word下载.docx

else

分支二

其中,“条件”由表达式如何,典型的如关系表达式(忘了什么叫“关系表达式”?

回头找找讲小情侣遇校监那章)。

“分支一”和“分支二”表示当条件成立时和不成立分别要执行语句。

用一句表达,就是:

如果条件成立(也称条件为真),那么程序执行分支一中的语句,否则(条件为假)程序执行分支二的语句。

这就是if...else语句。

举一生活中的例子:

if(我中了这一期体彩的500万大奖)

我买房;

我买车;

我去欧洲旅游;

我要修理自行车;

我买下一期体彩,

 我继续烧香。

上面的例子中:

这是第一个分支,而:

这是第二个分支。

到底我将执行哪个分支,依赖于条件:

“我中了这一期体彩的500万大奖”是否成立。

在梦中,我经常很开心地执行第一个分支,因为那个条件只能在梦中成立。

来一段真实的程序:

设a,b,c为已定义的三个int变量,有以下代码片段:

if(a>

b)

c=1;

c=0;

若a值为2,b值为1,那么执行上面代码,c的值将为1;

相反,如果a值为1,b值为1,由于条件:

a>

b不成立,所以程序将执行else后面一对{}中的代码,结果将是c值为0。

用流程图可以直观在表达程序的执行可能的方向。

我们来看if...else...的流程图:

箭头表示了程序可能的走向,当遇到条件(菱形)时,根据条件成立的真假,程序将作出选择,是走分支一还是分支二。

但无论经过哪个分支,最后都将同样继续后面的代码。

上机题目一:

用户输入一个整数,请写一程序,通过if...else...判断该数是偶数或奇数。

解题:

被2整除的整数叫偶数,什么叫整除?

就是除了以后余数为0啊。

还得我们学过一个操作符是用来求两数相除的余数吗?

(如果不记得,先自觉到墙角站10分钟,然后找第七章复习)。

%操作符用来求两数相除的余数,比如5%2得到余数1。

那么一个数,比如a,是否偶数,条件就是(a%2)==0。

(对==也看着也有点生疏?

20分钟!

然后还找第七章)。

打CB,然后新建一个空白控制台工程。

在代码中加下以下黑体部分:

//---------------------------------------------------------------------------

#include<

iostream.h>

#pragmahdrstop

#pragmaargsused

intmain(intargc,char*argv[])

intnum;

cout<

<

"

请输入一个整数:

;

cin>

>

num;

if((num%2)==0)

num<

是一个偶数。

<

endl;

else

是一个奇数。

getchar();

return0;

按F9编译并运行程序后,笔者输入123,以下是屏幕显示结果:

if...else...中的else(否则)并不是必须的,因为有时候,当指定条件成立时,我们执行某些动作,否则,我们不执行那些动作。

用流程图表示就是:

对比if...else...的流程图,我们发现if...语句中,当条件不成立时,将绕过分支一的语句,直接执行后面的代码。

if...语句格式:

 

if(条件)

{

分支一

}

来看这个例子,然后做出你的判断:

if(我每天赚100万)

我每天都将100成中的90万分给你。

看完上面的“程序”,你觉得我是个大方的人吗?

看起来是噢,但问题是我永远也无法每天赚100万,所以关于“我每天都将100成中的90万分给你” 整个是在穷开心呵。

同样的道理,你自已分析痞子蔡的那句话吧。

上机题目二:

用户输入一个字符,用程序判断是否为小写字母,如果是,请输出“您输入的字符是小写字母”。

如何判断一个字符是小写字母?

让我们查一下第五章中的ASCII码表。

在表里头,小写字母(a~z)对应的ASCII值为:

97~122 

a~z

可见,所有小写字母的值是连续的。

那么,判断一个字符是否为小写字母,就看它的值是否大于等于97,并且小于等122。

假设一个字符变量:

a;

要判断它是否“大于等于97,并且小于等122”--

你不能这样写:

if(97<

=a<

=122)//错误!

你应该使用&

&

来表达"

并且"

=97&

a<

=122)

当然,更直观,更不易出错的写法,是直接使用字符,而不是使用字符的ASCII值:

='

a'

&

z'

新建一个控制台空白工程。

然后在代码中输入以下黑体部分:

//---------------------------------------------------------------------------

#pragmahdrstop

#pragmaargsused

intmain(intargc,char*argv[])

chara;

请输入一个字符:

;

if(a>

是一个小写字母。

9.3 

?

表达式我们称为问号冒号表达式。

用if...else...和if...语句,已经可以很好地实现所有条件分支的代码。

不过C是一门追求简捷高效的语言,它提供的?

表达式来在某种情况下代替if...else...,起来让代码更简捷的作用。

来看看if...else...语句在什么情况下可以简化。

首先来看原型:

我们知道,分支一或分支二一般都是一组(多行)语句,用来分别实现条件是否成立时的动作。

由于是一组(多行)语句,所以我们有一对{}括在外面,用于形成复合语句。

不过,有时候,分支中的语句比较简单,用一句话就可以实现。

比如我们所举的例子:

在这个例子中,分支一、二都分别只有一条语句。

对于只有一条语句的情况,我们可以省略{}(除了在特殊的上下文中外,其它情况下都可以省略。

以后我们学习的其它流程控制也一样),如:

b)

else

看,没有花括号的代码,感觉多紧凑。

不过,对于上面的代码,我们还可以继续简化,那就是使用?

语句。

c=(a>

b)?

1:

0;

就一行话,多简捷!

语句中的问号问的是什么?

问的是a是否大于b?

如果是,则得到值1,否则,得到值0。

表达式格式语法:

(条件)?

值1:

值2

举一例子:

设有int变量a,b,二者均已初始化。

请得到二者中的较大值。

方法是:

intc=(a 

>

b)?

a:

b;

是的,就这么简单,执行上面代码,c将得到a和b中的较大值。

我们称(a>

b为一个表达式,而不称它为完整的一个语句(尽管它的确也可以作一个单独的语句存在)。

一般地,?

表达式拿来作为等号的右值,用于通过条件判断确定一个值后,该值被赋予等号的左值。

因此,并不是所有的if..else...语句都可以用:

来代替,只有那些两个分支都只是用来计算一个同一类型的值,然后赋予同一变量的条件分支语句,才适合。

上机题目三:

两数取大

inta,b,c;

请输入两个整数(用空格分开):

a>

c=(a>

c<

大"

下面是屏幕输出的结果。

我输入的两个数是102 和134。

9.4 

多级if...else...语句

不要害怕为什么一个条件分支就有这么多种语句。

多级if..else..语句——只是我这么叫它,其实它完全是由if..else..语句组成,就好像楼梯,一个阶的楼梯是楼梯,100个阶的楼梯也是楼梯。

多级if..else...语法格式:

if(条件1)

   

分支一  

}

elseif(条件2)

elseif(条件3)

   分支三

else

   分支四

}

格式中举出四个分支,实际可以只有三个,两个,也可以有更多个。

请看下在这个例子。

让我们想像这么一幕情景剧——

时间:

XXXX年2月14日;

地点:

某校园内小公园;

人物:

女生一,男生一。

(男生送给女生一束环瑰)

女生(高兴地):

多美啊——多少钱买的!

男生:

猜。

女生(心里想:

如果多于100元我就亲他一口):

超过100元吗?

NO。

女生:

(心里想:

如果多于50元我就许他亲我一口):

那,不低于50元吧?

如果多于10元就跟他说声谢谢吧):

那是不低于10元了?

(不再有任何想法,一把丢掉鲜花):

呸!

看明白了吗?

“看明白了……”一个小男生眼泪汪汪地站起来,回答:

“我是看明白了,现在的女生没一个是好东西!

”#·

$&

*%!

@啊?

 我是说,大家看出其中的多级条件分支了吗?

写成程序,便是:

intprice=玫瑰花价钱;

if(price>

100)

小女生要亲小男生一口;

elseif(price>

50)

小女生准备让小男生亲一口;

elseif(price>

10)

小女生对小男生说声“谢谢”;

小女生扔掉花,说:

“呸!

”;

如果花价大于100元,那么女生亲男生一口;

否则呢?

否则就再判断花价是否大于50元,如果还是不大,那不再来判断花价是否大于10元,如果还是不大,最后无条件地执行“小女生扔掉花……”这一句。

看一下多级if...else...语句的流程图:

上机题目四:

送花待遇,要求根据上面的情景剧,写一程序,用户输入花价后,程序根据不同的花价输出相应的待遇。

新建一控制台工程。

 intflowerPrice;

公元2002年2月14日,一小男生向一小女生赠送一束玫瑰……"

女生:

请输入这束花的价钱。

男生:

cin 

flowerPrice;

if(flowerPrice>

100)

哇!

我太喜欢这花了,让我亲你一口以示谢意!

elseif(flowerPrice>

50)

哈!

花美人更美,你不想亲我一口吗?

10)

谢谢!

else 

什么破花,大头鬼才会喜欢。

以下是运行结果的一种,我实在买不起100元以上的花:

多级if...else...显然是为了那些可能需要进行多级判断才能做出选择的情况。

如前面的花价。

如果正好是大于100元,那么只需判断一次,女生就可以做出决定,但如果是7元钱,那就必须经过“是否大于100?

是否大于50?

是否大于10?

”三次判断。

C为了简化这种多级判断,又提供了switch语句。

switch语句的格式:

switch(整型或字符型变量)

 case变量可能值1:

  

分支一;

 break;

case变量可能值2:

分支二;

case变量可能值3:

分支三;

...

default:

最后分支;

在switch的语法里,我们要学到4个关键字:

switch、case、break、default。

在 switch(变量) 这一行里,变量只能是整型或字符型。

程序先读出这个变量的值,然后在各个"

case"

里查找哪个值和这个变量相等,如果相等,就算条件成立,程序执行相应的分支,直到碰上break或者switch语句结束。

说起来有点抽象。

我们结合一个实例看看。

实例模拟一个网上调查。

它要求网友输入数字以选择自已是如何到达当前网页。

然后,程序根据网友这一输入,打出不同的结果。

上机题目五:

模拟网络调查,要求输出不同的选项,供网友选择(通过简单地输入数字),程序根据网友的选择,输出相应不同的结果。

请新建一控制台空白工程,然后在代码里输入以下黑体部分。

intfromWay;

请通过输入序号,选择您如何来到本网站。

1)----通过搜索引擎"

2)----通过朋友介绍"

3)----通过报刊杂志"

4)----通过其它方法"

fromWay;

switch(fromWay)

{

case1:

您是通过搜索引擎来到本网站的。

break;

case2:

您是通过朋友介绍来到本网站的。

case3:

您是通过报刊杂志来到本网站的。

case4:

您是通过其它方法来到本网站的。

错误的选择!

请输入1~4的数字做出选择。

以下是我运行的一个结果,我输入的是2。

对照输入结果,我们讲一讲这段代码,其中主要目的是要弄明白switch语句的用法。

首先,intfromWay 定义了一个整型变量,准备用来存储用户输入的选择。

cout<

这些语句输出提示和选择项,结果如上图。

cin>

 这一句则负责等待用户输入,并且将用户的输入存储到fromWay。

接下来程序遇上了switch 语句:

switch(fromWay)

程序将根据 fromWay 值,在下面的各个case中找到匹配的值。

 本例中switch带有四个case,值分别是1、2、3、4。

在结果图中,由于我输入的是2,所以程序进入下面这个case:

case2:

程序打出"

这行内容。

最后遇上break;

于是跳出整个switch语句。

同样的道理,如果用户输入的是其它的数,如1或3,则会进入相应的case1或 case3 分支。

但如果用户输入的数在所有的case里都找不到时,会怎么样?

比如,用户输入5。

这种情况下,default分支将起作用,所有case里的值都不匹配时,switch进入default分支。

如果连default也没有,那么程序在switch语句里什么也不做,直接完成switch语句。

我们来看一下如果用户不按所列的情况输入,而造成的结果:

了解一下switch,case,break,default的意思,对理解前面的一切也会有帮助,它们分别是:

开关,情况,中断,默认(值)。

那么用一句话套起来的说法就是:

根据开关值的不同,执行不同的情况

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1