if语句是C++中的选择语句,通过if语句程序可以在一种可能、二种可能或者多种可能中做出选择,对于不同的可能进行不同的处理。
1 一种可能
使用if语句对一种可能进行处理的格式如下所示:
if (表达式)
{
语句;
}
其中,if后面跟一个圆括号,圆括号里的表达式如果是true,则执行尖括号中的语句;如果表达式是false,则不执行。
假设某个学生的成绩用变量grade表示,如果学生的成绩大于或等于60分,则打印“通过”,这种情况属于一种可能,代码如图1所示。
图1 if语句对一种可能进行处理
从图1中可以看出,第6行代码将学生成绩grade的值设置为70;第7行if语句的表达式grade>=10的值是true,因此第9行代码将会被执行,打印出“通过”;如果grade的值是50,if语句的表达式的值是false,那么第9行代码将不会被执行,程序没有输出。
2 两种可能
在“1 一种可能”中提到,当学生的成绩大于等于60时,显示“通过”,但是对成绩小于60的这种可能情况没有处理。如果对于以上两种情况都要进行处理,则可用到if...else语句,其格式如下所示。
if(表达式)
{
语句1;
}
else
{
语句2;
}
如果表达式的值是true,则语句1被执行;如果表达式的值是false,则语句2被执行,代码如图2所示。
图2 if语句对两种可能进行处理
从图2可以看出,如果grade的值等于70,则显示“通过”;如果grade的值等于50,此时if的表达式值为false,则执行else下的语句,显示“不通过”。
3 多种情况
如果需要对“通过”的情况进行细化,90-100的成绩显示“优秀”;80-89的成绩显示“良好”;70-79的成绩显示“中等”;60-69的成绩显示“及格”;0-59的成绩显示“不通过”,此时属于多种可能。可以通过if...else if...else语句来实现,其格式为:
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
else
{
表达式4;
}
当表达式1为true时,则执行语句1;表达式2为true时则执行语句2;当表达式3为true时,则执行语句3;以上表达式均为false时,则执行else下的语句4。
对于多种可能,其实现的代码如图3所示。
图3 if语句对多种可能进行处理
4 真题解析
2024-09 选择题
答案:A
解析:第2行中for循环使得i的取值为0-9;第3行使用if语句实现一种可能的处理,当i%2的值是true,也就是i是奇数时,则执行break跳出for循环,如果i%2的值是false,也就是偶数时,则不执行break,程序向下继续执行第5行的输出以及for循环。当i=0时,%2的值是false,执行第5行代码,输出“0#”;i=1时,i%2的值是true,执行break跳出for循环,因为此时i=1,所以第7行中if语句的表达式是false,不会执行cout<<”1#”,程序结束,程序最终输出“0#”,答案选择A。
2024-09 选择题
答案:C
解析:本题属于使用if语句处理多种可能的情况,在“3 多种情况”中提到,if的哪一条表达式是true就执行其对应的语句;输入1和0,此时a=1,b=0;if语句的表达式中,a&&b、!(a||b)的值是false,而a||b的值是true,因此输出为3,答案选择C。
2024-09 选择题
答案:B
解析:本题属于if语句处理一种可能的情况,从第5行代码可以看出,第4行中if语句处理的情况是“当num不是质数时”。第3行代码,通过for循环i的取值范围是2到num-1,当num能够整除i,也就是num%i==0时,num不是质数,所以答案选择B。