首页 理论教育 使用if语句的条件-中学版C++教程

使用if语句的条件-中学版C++教程

时间:2023-08-13 理论教育 版权反馈
【摘要】:if和语句1也可以写在一行:i f语句1if结构的执行过程可用如图4-1所示的流程图表示,该图解释为:求条件表达式的值。if和语句1可以写在一行,else和语句2可以写在一行。图4-2if-else语句流程图例4-4输入一个整数a,判断其是奇数还是偶数。两者的区别是,条件运算符返回一个值,可以放到一个更大的表达式中,例如上面的if-else结构语句就可以写为:c=(a>b)?

使用if语句的条件-中学版C++教程

if语句有两种结构:if结构,if-else结构。

1.if结构

英文里if是如果的意思。这个结构就像小学生用“如果……就……”造句。比如妈妈对小明说:如果你期末考试考第一名,妈妈就带你去迪士尼玩。这个句子用if结构来写就是:

i f(小明期末考试考第一名)

妈妈带小明去迪士尼玩

if结构的格式:

i f(条件表达式)

语句1

说明:

图4-1 if语句流程图

(1)if是关键字,条件表达式必须用()括起来。

(2)if(条件表达式)和语句1也可以写在一行:

i f(条件表达式) 语句1

if结构的执行过程可用如图4-1所示的流程图表示,该图解释为:

(1)求条件表达式的值。

(2)根据表达式的值进行选择,若它的值为true(非0),则执行语句1;若它的值为false(0),则忽略语句1,按顺序执行条件语句后面的语句。

例4-1 输入1个数,如果是正数,则输出Yes。

思路分析:

使用if结构,只需要解决两个问题。

(1)条件表达式怎么写?本题要判断输入的数x是否为正数,表达式为:x>0;

(2)当条件表达式成立时,要执行什么语句?本题要执行语句:cout<<“Yes”;。

程序清单:

例4-2 输入一个整数x,判断是不是100以内(包含100)的正整数,如果是,输出“Yes!”。

思路分析:

(1)条件表达式:x>0&&x<=100。(2)要执行的语句:cout<<“Yes”;

程序清单:

在if结构中,很多时候当条件成立时,不只要执行一条语句,来看下面的例子。

例4-3 输入两个整数a、b,按由小到大的顺序输出。

思路分析:

(1)这里需要比较a、b,当a>b时,把a和b的值交换一下,保证其顺序由小到大,然后再输出。

(2)交换a、b,需要借助一个临时变量t把a的值先存储起来(t=a;),再把b的值赋给a(a=b;),最后再把t里的值赋给b(b=t;)。这样,语句就不只1条,而是3条。

(3)这时候要把条件成立时要执行的所有语句用“{}”括起来,成为一个整体,把它叫作复合语句(或语句块)。这样if结构就演变成下面的格式:

程序清单:

2.if-else结构

if-else结构是用“如果……就……,否则……”造句。

也就是说,不仅条件成立时要执行某些操作,当条件不成立时还要执行另外一些操作。(www.xing528.com)

if-else结构的格式:

说明:

(1)if和else是关键字,条件表达式必须用“()”括起来。

(2)if(条件表达式)和语句1可以写在一行,else和语句2可以写在一行。

if-else结构的执行过程可用如图4-2所示的流程图表示,该图解释为:

(1)求条件表达式的值。

(2)根据表达式的值进行选择:若它的值为true(非0),则执行语句1;若它的值为false(0),则执行语句2。

图4-2 if-else语句流程图

例4-4 输入一个整数a,判断其是奇数还是偶数。

程序清单:

例4-5 输入一个年份,判断是不是闰年,如果是闰年,则输出“Yes!”;否则,输出“No!”

思路分析:

前面已经写出了闰年的判断条件(y%4==0&&y%100!=0) ||(y%400==0),这样程序就很好写了。

程序清单:

同样,if-else结构中的语句1和语句2也可以是复合语句,变成下面的格式:

例4-6 顺丰快递现在是国内速度最快的快递,它的收费也比较贵。收费按重量计算,1公斤以内(含1公斤)收费10元,超过1公斤的部分,每公斤加收8元(不足1公斤的按1公斤计算)。现在来计算应收的费用。输入邮件的重量w(公斤数),输出应收的快递费f。

思路分析:

先写出条件表达式(w<=1),如果条件成立,f=10;否则,就要计算超出的部分(f-1)应加收多少。这就需要对(f-1)取整,这里使用ceil函数。ceil(x)返回的是大于或等于x的最小整数。使用这个函数需要包含头文件cmath。

程序清单:

3.条件运算符

先来看下面的语句:

这是一个简单的if-else结构语句,对于类似这样简单的关系表达式和简单的求值,C++中有一个可以代替它的运算符“?:”,叫作条件运算符,它是C++中唯一一个需要三个操作数的运算符(三目运算符)。条件运算符的优先级只比赋值运算符高。

使用条件运算符的通用格式是:

(条件表达式)?a∶b

这个表达式的值是由条件表达式的值决定的,当条件表达式的值为true时,整个表达式的值为a,当条件表达式的值为false时,整个表达式的值为b。

例如:

(5>3)?15∶10;因为5>3的值为true,所以整个表达式的值为15。

(5<3)?15∶10;因为5<3的值为false,所以整个表达式的值为10。

条件运算符使程序表达更简洁。两者的区别是,条件运算符返回一个值,可以放到一个更大的表达式中,例如上面的if-else结构语句就可以写为:c=(a>b)?a:b。

但是从可读性上讲,条件运算符适合于简单关系和简单表达式。关系比较复杂时还是用if-else结构更清晰明了。

例4-7 输入两个整数,输出其中较大者。

程序清单:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈