控制结构
if语句的形式有两种:
- 没有else
cpp
if ( 条件 )
语句1;
1
2
2
- 条件 ->
con
- 语句1 ->
stmt1
- 语句2 ->
stmt2
plaintext
+------+
| con |----+
+------+ |
| |
| YES | NO
v |
+---------+ |
| stmt1 | |
+---------+ |
|
+--------+
|
v
后面的语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
样例:输入一个分数,判断是否及格,及格输出YES,否则什么也不做。
cpp
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
if( a>=60 ) //是否>=60
cout <<"yes\n";
return 0;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 有else
cpp
if ( 条件 )
语句1;
else
语句2;
1
2
3
4
2
3
4
plaintext
+------+
+-------| con | --------+
YES | +------+ | NO
| |
v v
+-------+ +-------+
| stmt1 | | stmt2 |
+-------+ +-------+
| |
| |
+----------+------------+
|
v
后面的语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
样例:输入一个分数,判断是否及格
cpp
#include <bits/stdc++.h> //万能头文件
using namespace std;
typedef long long ll;
int main(){
int a; //定义一个变量
cin >> a; //输入一个值
if( a >= 60) //if只能控制后面的一句话
cout << "YES\n";
else
cout << "NO\n";
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
注意
if
可以单独出现- 如果有
else
,必须要有if
if
和else
都只能控制后面紧跟着的一名话- 如果想控制多句话,用
{}
括起来,形成一个语句块
- 如果想控制多句话,用
if
和else
合起来算一句话,如果没有else
,if
算一句话
if 语句之间的嵌套
思想下面的几个代码的运行结果
cpp
#include <bits/stdc++.h> //万能头文件
using namespace std;
typedef long long ll;
int main(){
int a; //定义一个变量
cin >> a;
if( a >= 60) //if只能控制后面的一句话
//下面的if else 形成一句话 ,被上面的if(a>=60) 控制
if ( a>= 70)
cout << ">= 70\n";
else
cout << ">=60 ,< 70\n";
else
if( a > 30)
cout << "a > 30,a<60\n";
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
任务:编写这个代码,回答下面的问题
- 分别输入
20,30,40,60 70 80
查看输出结果是什么,分析原因
cpp
#include <bits/stdc++.h> //万能头文件
using namespace std;
typedef long long ll;
int main(){
int a; //定义一个变量
cin >> a; //输入一个值
if( a >= 60) //if只能控制后面的一句话
//下面的if else 形成一句话 ,被上面的if(a>=60) 控制
if ( a>= 70)
cout << ">= 70\n";
else
cout << ">=60 ,< 70\n";
else
if( a > 30)
cout << "a > 30,a<60\n";
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- 分别输入
60,70,80,90
查看输出结果是什么,分析原因
学习到:
if
和else
都只能控制后面紧跟着的一名话,如果想控制多句话,用{}
括起来,形成一个语句块
if ... else if ...else if...
编写运行下面的代码,分别输入50 60 75 85 95
,查看输出结果是什么,分析原因。
cpp
#include <bits/stdc++.h> //万能头文件
using namespace std;
typedef long long ll;
int main(){
int a; //定义一个变量
cin >> a;//输入一个值
if( a >= 90) //60
cout << "you xiu\n";
else if ( a >= 80 )
cout << "liang hao\n";
else if( a >=60)
cout << "ji ge\n";
else
cout << "bu ji ge\n";
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
与下面的写
cpp
#include <bits/stdc++.h> //万能头文件
using namespace std;
typedef long long ll;
int main(){
int a; //定义一个变量
cin >> a;//输入一个值
if( a >= 90) //60
cout << "you xiu\n";
else {
if ( a >= 80 )
cout << "liang hao\n";
else {
if( a >=60)
cout << "ji ge\n";
else
cout << "bu ji ge\n";
}
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
else
和它上面的最近的同级别的if
配对