C++基础(4)中提到了,所有的程序都可以有三种控制结构:顺序结构、选择结构和循环结构。在默认的情况下,计算机会采取顺序结构,一条一条地执行下去。除非,我们在程序中明确地指明。

程序中的分支(选择)结构,控制语句包括if语句、switch语句。分支结构又分为单分支、双分支、多分支结构。if结构称为单分支结构,只选择一种分支的操作;if-else结构称为双分支结构,在两个分支当中进行选择其一;switch结构称为多分支结构,在多种情况下采取不同的操作。

今天只介绍if和if-else结构。

if语句(单分支结构)

单分支结构通过下列格式进行程序设计:

if(条件表达式)
	语句1;

在上面结构中,如果条件表达式的值为真(条件成立)时,语句1将被执行;否则,语句1将被忽略(不执行),程序将按顺序从这个单分支结构之后的下一条语句继续执行。

注意:在C++中,if后面的条件表达式必须用圆括号括起来。

image-20210916162318078

【题目】输入一个正整数a,如果a>100,则输出“yes”。

1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
int main(){
    int a;
    cin >> a;
    if (a > 100)
        cout << "yes" << endl;
    return 0;
}

想一想:输入一个正整数a,如果a<100,则输出“no”。代码是什么样的?

【题目】输入一个正整数a,如果a>100且a为偶数,则输出“yes”。

1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
int main(){
    int a;
    cin >> a;
    if (a > 100 && a % 2 == 0)
        cout << "yes" << endl;
    return 0;
}

如果在分支结构中,需要执行多个语句,必须将所有语句放在一对花括号以内,我们成为“代码块”或者“复合语句”。

if(条件表达式)
	{
		语句1;
		语句2;
		语句3;
	}

if-else语句

在单分支结构中,只有条件为真时,执行结构内的语句,条件为false时,忽略结构内的语句。在双分支结构中,采用if-else语句,可以在条件为true时和条件为false时采取不同操作。

if(条件表达式)
	{
		语句1;
		语句2;
		语句3;
	}
else
	{
		语句4;
		语句5;
	}

如果(条件表达式)为“真”,即条件成立时,则执行语句1-3,执行完“语句3”后,继续执行整个if- else结构后面的语句;如果(条件表达式)的值为“假”,即条件不成立,跳过语句1-3,直接执行语句4-5,执行完“语句5”后,继续执行整个if-else语句后面的语句。也就是说if-else语句总是根据(条件表达式)的结果,选择代码块“语句1-3”和代码块“语句2”中的其中一个执行,执行完以后,整个if-else结构就执行完成了。

image-20210916162334716

【题目】在买桃子的时候,当买的桃子量小于10斤时,每斤2元;当买桃子量大于10斤时,每斤1.5元,输入购买桃子量,输出总金额(保留2位小数)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include<cstdio>
using namespace std;
int main(){
    float m, c;
    scanf("%f", m);
    if(m > 10)
        c = m * 1.5;
    else
        c = m * 2;
    printf("%0.2f", c);
    return 0;
}

公众号:格致书院