前言
程序原本是默认一行一行执行的。但是某些情况下,我们希望在某个条件下,才进行某些操作。比如今天天气
- 若下雨,我们就去室内游泳
- 若不下雨,当然就是去打球啦
那么这里用一个简单的例子说明一下。这里会用到一个新的变量类型, 回顾一下,上一篇博客我们用到了整型 int, 这里我们用一个字符串变量, 它是string 类型。
这里我先列一下常见的变量的基本类型,大家不用死记硬背,以后用多了自然熟悉。
- 字符串类型, string, “我是一个字符串” (这个其实是iostream库实现的一个类,严格算来说不算基本类型)
- 字符类型, char, ‘c’
- 整数, int, 100
- 单精度浮点数, float, 99.5
- 双精度浮点数, double, 99.5 (精度比单精度准确,因为它占据的内存空间比 float 多)
- 布尔类型, bool, True / False
目录:
if 语句
例子一
#include <iostream>
using namespace std;
int main() {
string weather = "rainy"; // 定义一个字符串类型变量
if (weather == "rainy") {
// 其实单个语句可以不用花括号括起来
cout << "we will go swimming" << endl;
} else {
// else 结构其实不是必须的, 看具体需要
cout << "we will go to play basketball" << endl;
}
return 0;
}
这里我们对weather条件进行了判断,从而使我们针对不同的条件执行不同的语句。结构如下
if (条件1) {
条件1为真则执行这一部分代码
} else if (条件2) {
若条件1不成立,而条件而成立则执行这部分代码
同理,可根据需要在后面接上若干个else if 语句
} else {
其他情况下则执行这段代码
}
最简单的情况如下: (else if, else都不是必须的)
if (条件1) {
条件1为真则执行这一部分代码
}
例子2
现在,我们需要将成绩进行归类,例如
- [90, 100] 列为优秀
- [75, 90)列为良好
- [60, 75) 列为通过
- [0, 60) 列为不及格
#include <iostream>
using namespace std;
int main(){
// 因为成绩有可能有0.5分的情况,所以用了float而不是int
float grade = 85.5;
if (grade >= 90 && grade <= 100)
cout << "优秀" << endl;
else if (grade >= 75 && grade < 90)
cout << "良好" << endl;
else if (grade >= 60 && grade < 75)
cout << "通过" << endl;
else
cout << "不及格" << endl;
return 0;
}
代码中使用到了 && , 代表条件同时成立则为真。
例子3
回到我们最开始的例子, 我们将情况考虑得更清楚。
- 若下雨,
- 如果室内体育馆开, 我们就去室内游泳
- 如果室内体育馆没开,我们就去打游戏。
- 若不下雨,当然就是去打球啦
#include <iostream>
using namespace std;
int main(){
string weather = "rainy";
bool gymOpen = True;
if (weather == "rainy") {
if (gymOpen)
cout << "we will go to swimming" << endl;
else
cout << "we will go to play games" << endl;
} else {
cout << "we will go to play basketball" << endl;
}
return 0;
}
这个例子向我们展示了,选择语句也可以嵌套。
switch语句
好了,大家别激动,不是你们想的任天堂。
这里我们考虑一个情况 “三天打鱼,四天筛网”, 假设我分别用1~7代表周一到周日。那么如下:
- 1~3, 即周一到周三复习数学
- 4~5, 即周四到周五玩游戏
- 6~7, 即周末出去浪
这里除了可以使用刚刚学过的 if 语句之外,其实也可以使用一下switch, 当条件特别多时,代码看起来会更加清爽。
#include<iosteram>
using namespace std;
int main() {
int day = 2;
switch (day) {
case 1:
cout << "周一" << endl;
case 2:
cout << "周二" << endl;
case 3:
cout << "周三" << endl;
cout << "复习数学" << endl;
break; // 记得break;不然会一直执行下去
case 4:
cout << "周四" << endl;
case 5:
cout << "周五" << endl;
cout << "打游戏,hi起来" << endl;
break;
default: // 其他情况
cout << "周末出去浪" << endl;
// 这里break不break都无所谓啦
}
return 0;
}
对于该例子希望大家动手多实践实践。