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 输入两个整数,输出其中较大者。
程序清单:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。