cpp极简入门——分支(3)

前言

程序原本是默认一行一行执行的。但是某些情况下,我们希望在某个条件下,才进行某些操作。比如今天天气

  • 若下雨,我们就去室内游泳
  • 若不下雨,当然就是去打球啦

那么这里用一个简单的例子说明一下。这里会用到一个新的变量类型, 回顾一下,上一篇博客我们用到了整型 int, 这里我们用一个字符串变量, 它是string 类型。

这里我先列一下常见的变量的基本类型,大家不用死记硬背,以后用多了自然熟悉。

  • 字符串类型, string, “我是一个字符串” (这个其实是iostream库实现的一个类,严格算来说不算基本类型)
  • 字符类型, char, ‘c’
  • 整数, int, 100
  • 单精度浮点数, float, 99.5
  • 双精度浮点数, double, 99.5 (精度比单精度准确,因为它占据的内存空间比 float 多)
  • 布尔类型, bool, True / False

目录:

cpp极简入门——概要_(1)
cpp极简入门——输入输出流简单运用_(2)
cpp极简入门——分支(3)


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;
}

对于该例子希望大家动手多实践实践。

上一篇:android 10.0添加开机铃声


下一篇:centos使用gcc编译c++源码文件(*.cpp)