选择结构语句.docx
《选择结构语句.docx》由会员分享,可在线阅读,更多相关《选择结构语句.docx(17页珍藏版)》请在优知文库上搜索。
1、选择结构语句前面所有的程序都是从上到下,每条语句执行一次,直到程序结束,这种W页序结构的程序能解决的问题极其有限。在现实生活中,需要进行判断和选择的情况是很多的,例如上一章的金币复制机,如果限制用户投入的金币数必须少于20,才能复制金币,那就要判断用户投入的金币数是否小于20。如果问题中出现需要进行判断和选择的情况,那就要引入选择语句才能解决。选择语句C语言最常用的选择语句是if选择语句,if选择语句分为ifelse语句和if语句。ifelse语句ifelse语句的格式如下所示:if()else是判断条件,是一个条件表达式或逻辑表达式。(关于条件表达式或逻辑表达式稍后介绍)是当条件为真值(满足
2、条件)时执行的语句。是当条件为假值(不满足条件)时执行的语句。条件表达式选择结构语句中的条件是一个条件表达式或逻辑表达式。条件表达式是件表达式的运算结果是逻辑值:真值(满足条件)或假值(不满足条件)。条件表达式分为关系表达式和逻辑表达式。关系表达式关系表达式是指用关系运算符将两个表达式(关系运算对象)连接起来的式子,如果条件满足,结果为真值,否则为假值。关系表达式中的关系运算符用于对运算对象进行比较运算,判定是否符合给定的关系。C语言中关系运算符有6种:(小于)、=(小于或等于)、(大于)、=(大于或等于)、=(连续2个等于号,等于)、!=(不等于)。关系运算符都是双目运算符,即有2个运算对象
3、,它们的运算很简单。关系表达式举例:45假值4!=5真值逻辑表达式逻辑表达式是指用逻辑运算符将运算对象连接起来的表达式逻辑表达式中的逻辑运算符是对逻辑值(真值或假值)或者运算结果是一个逻辑值的表达式进行运算,C语言中有3种逻辑运算符:&:与运算符,只有当它连接的2个表达式都为真时,其运算结果为真,其他情况都为假。与运算符用于连接2个要同时满足的条件。Il:或运算符,只有当它连接的2个表达式都为假时,其运算结果为假,其他情况都为真。或运算符用于连接2个只要满足1个的条件。!:非运算符,或者叫做取反。后面的表达式为真值时,结果为假,否则为真。逻辑表达式举例:a=0&a=100/a是一个已有值的变量
4、if语句if语句的格式如下所示:if()是判断条件,是一个条件表达式或逻辑表达式。是当条件为真值(满足条件)时执行的语句。单分支问题单分支问题是指根据情况进行判断后,可供选择的结果只有1个。例子新版金币复制机的另一个版本:现在金币复制机的功能更新,只有当用户投入的金币数小于20时,金币复制机才会正常吐出金币,反之,金币复制机没有任何反馈信息。用户投入金币后,金币复制机只有1种选择:一是如果用户的金币数小于20,金币复制机复制出一半的金币。显然,这是一个单分支问题。显而易见,单分支问题用if语句解决,本题的完整程序如下:SCanf(%d,&x);if(x20)y=365*x2+x;Print(y
5、);程序11双分支问题双分支问题是指根据情况进行判断后,可供选择的结果有2个。例子新版金币复制机:现在金币复制机的功能更新,只有当用户投入的金币数小于20时,金币复制机才会正常吐出金币,反之,金币复制机会输出金币数太多的反馈信息。用户投入金币后,金币复制机有2种选择:一是如果用户的金币数小于20,金币复制机复制出一半的金币,二是如果用户的金币数大于或等于20,金币复制机给出金币数太多的反馈信息。显然,这是一个双分支问题。首先,分析金币复制机的算法,如下所示: 用户输入金币数 如果用户输入的金币数小于20,计算并输出总的金币数,输出运算结果,反之,输出ToOmanygoldcoins”。这里要根
6、据条件(用户输入的金币数小于20)的真或假来决定接下来运行的语句,这就要用到选择语句了。设保存用户输入的金币数的变量为X,由选择结构的条件是:x20根据这个条件将用户的金币数分为2个区域(双分支):20以上和20或20以下,不同的区域有不同的处理。如果条件为真(20以上的区域)则计算并输出总的金币数,语句如下:y=365*x2+xPrintf(w%d”,y);如果条件为假(20或20以下)则输出t。manygoldcoins,语句如下:printfftoomanygoldcoins);将以上结果填入ifelse语句,再加上前后的语句,程序如下:SCanf(%d,&x);if(x20)y=365
7、*x2+x;print(y);elseprintfftoomanygoldcoinszz);程序1编程技巧双分支问题也可以用if语句解决。不管是几个分支,归根结底,每一个结果都对应一个条件,它们是一对应的,例如上面介绍的金币复制机。if语句就是当一个条件满足时执行对应的一个结果,反过来,一个条件对应一个结果可以用一条if语句解决,所以双分支问题就可以用2个if语句来解决。因为ifelse语句中else部分的条件是取反得到的,所以只要将ifelse语句中的条件取反就可以得到另一个if语句中的条件。所以前面的程序可以改写为:SCanfC%d,&x);if(x=20)printf(toomanygo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择 结构 语句