基本格式:
只有判断结果为true,才会执行后续{}内的代码
- if (要执行的判断,结果需是bool型)
- {
- 判断结果true,才会执行的代码;
- }
- if (条件判断)
- {
- 如果判断结果为true,会执行的代码;
- }
-
- else{
- 如果判断结果为false,会执行的代码;
- }
可以编写多个else if 语句 判断从上到下互斥,
有一个满足就不会在判断其它条件 可以在最后提供else语句,全部条件不满足后的执行
- if (条件判断)
- {
- 如果判断结果为true,会执行的代码;
- }
- else if (条件判断2)
- {
- 条件2为true,会执行的代码;
- }
- else if (条件判断N)
- {
- 条件N为true,会执行的代码;
- }
- else
- {
- 上述判断全部为false,会执行的代码;
- }
嵌套:
- if (条件)
- {
- code;
- if (条件)
- {
- code;
- }
- else
- {
- code;
- }
- }
- else
- {
- code;
- }
它在功能上和if、else if的组合使用基本一致, 只是提供了另外一种更为简洁的针对多条件判断的写法。
- switch(expression)
- {
- case expression_1:
- code;
- break; // 可选的
- case expression_2:
- code;
- break; // 可选的
- …
- …
- case expression_N:
- code;
- break; // 可选的
- default:// 当没有任何 case 表达式的值与 expression 的值匹配时,执行此语句
- }
需要注意的是,switch语言只执行一次,直到出现break才停止。如果没有出现break,那么就会一直执行后面的程序。
代码举例:
- #include "iostream"
- using namespace std;
-
-
- int main()
- {
- // 输入数字1-7 输出星期几
- // int num;
- // cout << "请输入数字来告知是星期几(1-7):" << endl;
- // cin >> num;
- // switch(num){
- // case 1:
- // cout << "今天是星期一" << endl;
- break;
- // case 2:
- // cout << "今天是星期二" << endl;
- break;
- // case 3:
- // cout << "今天是星期三" << endl;
- break;
- // case 4:
- // cout << "今天是星期四" << endl;
- break;
- // case 5:
- // cout << "今天是星期五" << endl;
- // break;
- // case 6:
- // cout << "今天是星期六" << endl;
- break;
- // default:
- // cout << "今天是星期天" << endl;
- // }
- int num;
- cout << "请给电影打分10和9是优秀、8和7是一般、6和5是普通,低于5是垃圾:" << endl;
- cin >> num;
- switch (num) {
- case 10:
- case 9:
- cout << "优秀" << endl;
- break;
- case 8:
- case 7:
- cout << "普通" << endl;
- break;
- case 6:
- case 5:
- cout << "一般" << endl;
- break;
- default:
- cout << "垃圾电影" << endl;
- }
-
- return 0;
- }
枚举是一种用户自定义类型,可以将数字标号定义为具体的符号。
枚举一般用于对各种不同的状态,定义可识别的符号。

枚举类型本质上述数字
默认数字序号从0开始递增,也可以手动指定,如上。指定RED为1,那么YELLOW为2,BLUE为3
枚举可以配合switch case语句一起使用,增加代码的可读性。
- #include "iostream"
- using namespace std;
-
-
- int main()
- {
- /*
- * enum 枚举类型名称{
- * 枚举元素,
- * 枚举元素,
- * ...,
- * ...,
- * }
- */
- // 询问小朋友喜欢的颜色:红黄蓝三种选1个
- // enum Color{
- // RED, // 默认是0
- // YELLOW, // 默认是1
- // BLUE // 默认是2
- // };
- enum Color{
- RED = 1,
- YELLOW = 3,
- BLUE = 5
- };
-
- int num;
- cout << "小朋友们你们喜欢什么颜色?1红色,3黄色,5蓝色" << endl;
- cin >> num;
- switch (num) {
- case RED:
- cout << "小朋友喜欢红色!" << endl;
- break;
- case YELLOW:
- cout << "小朋友喜欢黄色!" << endl;
- break;
- case BLUE:
- cout << "小朋友喜欢蓝色!" << endl;
- break;
- default:
- cout << "你输入的数字有误,不知道你喜欢什么颜色!" << endl;
- }
-
- return 0;
- }
while循环需要提供判断表达式,只要表达式结果为true,就会持续的执行下去。
表达式的判断需要有变量,否则会无限循环。即一般会在代码提供:循环因子,即可以在每一次循环产生变化的变量或其它,用来规避循环无限执行。
- #include "iostream"
- using namespace std;
-
-
- int main()
- {
- // 循环的控制因子
- // bool is_run = true;
- // int num = 0; // 控制变量
- // while (is_run) { // false就结束while循环了,true就继续执行循环体
- // cout << "hello" << endl;
- // num++;
- //
- // if (num > 5) {
- // is_run = false; // 控制因子的更新
- // }
- // }
-
- // 我要向小美表白,每一天都表白,连续表白10天
- int day = 1; // 循环的控制因子
- while (day <= 10)
- {
- cout << "今天是第" << day << "天,小美我喜欢你!" << endl;
-
- day++; // 循环控制因子的更新
- }
-
- return 0;
- }
do while和while功能有相同也有不同:
do while和while都是基于条件判断的循环结构
while是:判断->执行->判断->执行...的流程
do while:执行->判断->执行->判断->执行...的流程
do while适用于需要对循环体先执行的场景
while编写乘法表举例:

- #include "iostream"
- using namespace std;
-
- /*
- * 打印九九乘法表
- * 1. 外层循环控制行,内层控制列
- * 2. \t分隔内层循环的输出,行和行之间有换行分隔
- * 1x1=1
- * 1x2=2 2x2=4
- * 1x3=3 2x3=6 3x3=9
- * 1x4=4 2x4=8 3x4=12 4x4=16
- * 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
- * 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
- * 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
- * 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
- * 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
- * */
- int main()
- {
- // 1. 通过外层循环输出9行
- int line = 1; // 外层循环控制因子,从1开始
- while (line <= 9) // 判断条件,9行输出
- {
- // cout << line << endl;
- // 2. 内层循环
- int num = 1; // 内层循环的控制因子
- while (num <= line)
- {
- cout << num << "x" << line << "=" << num * line << "\t";
- num++; // 内层循环控制因子++
- }
-
- line++; // 外层循环控制因子的更新
- cout << endl;
- }
- return 0;
- }
while编写案列举例:

- #include "iostream"
- using namespace std;
-
- /**
- * 细节点:
- * 1. 外层循环完成5天的减肥
- * 2. 内层循环进行:三次俯卧撑(三次完成减少1斤体重)、三次400米冲刺(三次完成减少1斤体重)
- * 3. 过程中要累计其体重减少
- */
- int main()
- {
- cout << "有点胖需要减掉10斤体重,计划5天,每天目标2斤体重。加油!" << endl;
-
- int sum = 0; // 体重累加变量
- // 外层循环完成5天的减肥
- int day = 1; // 减肥日的周期,从第一天开始。外层循环的控制因子
- while (day < 6) // 控制减肥5天
- {
- cout << "今天是减肥的第" << day << "天" << endl;
-
- // 俯卧撑的三次控制
- int sport1 = 1; // 俯卧撑控制因子
- while (sport1 < 4)
- {
- cout << "开始做减肥第" << day << "天的第" << sport1 << "个俯卧撑! ";
- sport1++; // 俯卧撑控制因子的更新
- }
- sum += 1; // 体重减少的累加1
- cout << endl;
- cout << "减肥第" << day << "天的3个俯卧撑做完,体重减少1斤,累计减少" << sum << "斤!" << endl;
-
- // 400米冲刺的三次控制
- int sport2 = 1; // 400米冲刺控制因子
- while (sport2 < 4)
- {
- cout << "开始做减肥第" << day << "天的第" << sport2 << "批次的400米冲刺! ";
- sport2++; // 400米冲刺控制因子的更新
- }
- sum+=1; // 体重减少累加1
- cout << endl;
- cout << "减肥第" << day << "天的3个400米冲刺做完,体重减少1斤,累计减少" << sum << "斤!" << endl;
- day++; // 循环控制因子的更新,每一天完事,day+1
- cout << endl;
- }
-
- cout << "5天的减肥完成,累计减少:" << sum << "斤体重!" << endl;
-
- return 0;
- }
获取随机函数:
在代码中 #include "random" 将右侧代码放置在main函数之前 即可调用 get_random_num 函数, 随机数范围可以通过调用函数的2个参数控制,可以得到1~10范围的随机数字。
get_random_num(1,10)获取[1,10]的整数
while循环,仅:条件判断,是语法要求,循环因子相关是用户自行提供。
for循环循环,条件判断、循环因子初始化、循环因子变化,均包含在for循环的语法内,是语法自带功能。
语法结果:
for循坏是一种更为严谨的循环:
循环因子的初始化
条件判断
循环因子的更新
都是for循环语法要求的。
for循环的循环因子初始化、条件判断、循环因子更新;
三部分是语法功能但不是强制要求,可根据需要提供或不提供
for循环和while循环区别:
for循环需要注意:
执行顺序为1——>2——>3——>4;1这个步骤只执行一次,后续执行是2——>3——>4不断重复执行。

for的嵌套:

for语句乘法表:
- #include "iostream"
- using namespace std;
-
- /**
- * for|while (; ;)
- * {
- * ...
- * for|while ()
- * {
- * ...
- * }
- * }
- */
- int main()
- {
- // 1. 对行的控制9行
- for (int line = 1; line <= 9; line++)
- {
- // 2. 对列进行控制
- // 1x3 2x3 3x3
- // 左侧操作数从1开始,到行号结束。 右侧操作数是固定为行号
- for (int col = 1; col <= line; col++)
- {
- cout << col << "x" << line << "=" << col * line << "\t";
- }
- // 每一行之间留下回车分隔
- cout << endl;
- }
- return 0;
- }
在C++代码中,变量并不是随时、随处可以访问的,而是要看作用域。
{...…}称之为代码块,也是内部变量的作用域
在{....}内部声明的变量,可以在{}内任何地方被访问,但在{}之外无法被访问到
在循环中可以使用:
continue关键字,跳过本次循环,进入下一次;
break关键字,直接结束所在循环。
注意:如果执行的是continue这条指令,那么cout这条指令不会被执行。
如果执行的是break语句那么会直接跳出该代码块。
1.continue的作用是:
中断所在循环的当次执行,直接进入下一次
2.break的作用是:
直接结束所在的循环
3.注意事项:
continue和break,在for和while循环中作用一致
在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

1.goto语句可以实现任意跳转,无任何条件
2.基于其功能其实仅goto就可以实现如:循环,continue、break等的功能
3.goto语句建议:慎重使用、慎重使用、或者压根不用