C++| 匠心之作 从0到1入门学编程【视频+课件+笔记+源码】

目录

4 程序流程结构

4.1 选择结构

4.1.1 if语句

——①单行格式if语句

——②多行格式if语句

——③多条件的if语句

——④嵌套if语句

4.1.2 三目运算符

4.1.3 switch语句

4.2 循环结构

4.2.1 while循环语句

——while循环 练习案例:猜数字

4.2.2 do...while循环语句

——do...while循环 练习案例:水仙花数

4.2.3 for循环语句

——for循环 练习案例:敲桌子

4.2.4 嵌套循环

——for循环嵌套 练习案例:乘法口诀表

4.3 跳转语句

4.3.1 break语句

——示例

4.3.2 continue语句

——示例

4.3.3 goto语句

——示例


4 程序流程结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。

  • 顺序结构:程序按顺序执行,不发生跳转。

  • 选择结构:依据条件是否满足,有选择的执行相应功能。

  • 循环结构:依据条件是否满足,循环多次执行某段代码。

4.1 选择结构

4.1.1 if语句

作用:执行满足条件的语句。

if语句的三种形式

  1. 单行格式if语句

  2. 多行格式if语句

  3. 多条件的if语句

——①单行格式if语句

单行格式if语句:if(条件){ 条件满足执行的语句 }

示例:

#include <iostream>
using namespace std;int main()
{//选择结构-单行if语句//用户输入一个分数,如果分数大于600分,视为考上一本大学,并在屏幕上打印(输出)//1、用户输入分数int score = 0;cout << "请输入一个分数:" << endl;cin >> score;//2、打印用户输入的分数cout << "您输入的分数为: " << score << endl;//3、判断分数是否大于600,如果大于600,则输出...//if语句//注意事项,在if判断语句后面,不要加分号if (score > 600){cout << "我考上了一本大学!!!" << endl;}return 0;
}

注意:if条件表达式后不要加分号。

——②多行格式if语句

多行格式if语句:if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };

示例:

#include <iostream>
using namespace std;int main()
{//选择结构-多行if语句//输入考试分数,如果分数大于600,视为考上一本大学,在屏幕上输出//如果没考上一本大学,打印"未考上一本大学"//1、输入考试分数int score = 0;cout << "请输入考试分数:" << endl;cin >> score;//2、提示用户输入的分数cout << "您输入的分数为:" << score << endl;//3、判断如果大于600,打印“考上一本”,否则打印"未考上一本"if (score > 600) //大于600分执行下面大括号中的内容{cout << "我考上了一本大学!" << endl;}else//不大于600分,执行else后大括号中的内容{cout << "我未考上一本大学!" << endl;}system("pause");return 0;
}

——③多条件的if语句

多条件的if语句:if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句}

示例:

 

#include <iostream>
using namespace std;int main()
{//选择结构-多行if语句int score = 0;cout << "请输入考试分数:" << endl;cin >> score;if (score > 600){cout << "我考上了一本大学!" << endl;}else if (score > 500){cout << "我考上了二本大学!" << endl;}else if (score > 400){cout << "我考上了三本大学!" << endl;}else{cout << "我未考上本科!" << endl;}system("pause");return 0;
}

——④嵌套if语句

嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精确的条件判断。

案例需求:

  • 提示用户输入一个高考考试分数,根据分数做如下判断

  • 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;

  • 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。

示例:

 

#include <iostream>
using namespace std;int main()
{int score = 0;cout << "请输入考试分数:" << endl;cin >> score;if (score > 600){cout << "我考上了一本大学!" << endl;if (score > 700){cout << "我考上了北大!" << endl;}else if (score > 650){cout << "我考上了清华!" << endl;}else{cout << "我考上了人大!" << endl;}}else if (score > 500){cout << "我考上了二本大学!" << endl;}else if (score > 400){cout << "我考上了三本大学!" << endl;}else{cout << "我未考上本科!" << endl;}system("pause");return 0;
}

练习案例: 三只小猪称体重

有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?

 

#include <iostream>
using namespace std;int main()
{//三个小猪称体重,判断哪只小猪最重//1、创建三只小猪的体重变量int A = 0;int B = 0;int C = 0;//2、让用户输入三只小猪的体重cout << "\n请输入小猪A的体重:" << endl;cin >> A;cout << "\n请输入小猪B的体重:" << endl;cin >> B;cout << "\n请输入小猪C的体重:" << endl;cin >> C;cout << "\n小猪A的体重为:" << A << endl;cout << "小猪B的体重为:" << B << endl;cout << "小猪C的体重为:" << C << endl;//3、判断三只哪只小猪最重//先判断A和B重量if (A > B) //A比B重{if (A > C){cout << "\n小猪A最重!\n" << endl;}else{cout << "\n小猪C最重!\n" << endl;}}else //B比A重{if (B > C){cout << "\n小猪B最重!\n" << endl;}else{cout << "\n小猪C最重!\n" << endl;}}system("pause");return 0;
}

4.1.2 三目运算符

作用: 通过三目运算符实现简单的判断。

语法:表达式1 ? 表达式2 :表达式3

解释:

如果表达式1的值为真,执行表达式2,并返回表达式2的结果;

如果表达式1的值为假,执行表达式3,并返回表达式3的结果。

示例:

#include <iostream>
using namespace std;int main()
{//三目运算符int a = 10;int b = 20;int c = 0;c = a > b ? a : b;cout << "c = " << c << endl; //c = 20c = (a > b ? a : b);cout << "c = " << c << endl; //c = 20//C++中三目运算符返回的是变量,可以继续赋值(a > b ? a : b) = 100;cout << "a = " << a << endl; //a = 10cout << "b = " << b << endl; //b = 100cout << "c = " << c << endl; //c = 20system("pause");return 0;
}

总结:和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰。

4.1.3 switch语句

作用:执行多条件分支语句。

语法:

switch (表达式) //【switch语句中表达式类型只能是整型或者字符型】

{

case 结果1: 执行语句;break;

case 结果2: 执行语句;break;

...

default: 执行语句;break;

}

示例:

#include <iostream>
using namespace std;int main() //switch语句
{//请给电影进行评分// 10 ~ 9   经典// 8 ~ 7   非常好// 6 ~ 5   一般// 5分以下 烂片//1、提示用户给电影评分cout << "请给电影打分:" << endl;//2、用户开始进行打分int score = 0;cin >> score;cout << "您打的分数为:" << score << endl;//3、根据用户输入的分数来提示用户最后的结果switch (score){case 10:// cout << "您认为是经典电影!" << endl;// break; //退出当前分支case 9:cout << "您认为是经典电影!" << endl;break; //退出当前分支case 8:// cout << "您认为电影非常好!" << endl;// break;case 7:cout << "您认为电影非常好!" << endl;break;case 6:case 5:cout << "您认为电影一般!" << endl;break;default:cout << "您认为是烂片!" << endl;break;}//if和switch区别?//switch缺点:判断时候只能是整型或者字符型,不可以是一个区间!//switch优点:结构清晰,执行效率高!system("pause");return 0;
}

注意1:switch语句中表达式类型只能是整型或者字符型。

注意2:case里如果没有break,那么程序会一直向下执行。

总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间。

4.2 循环结构

4.2.1 while循环语句

作用:满足循环条件,执行循环语句

语法:while(循环条件){ 循环语句 }

解释:只要循环条件的结果为真,就执行循环语句。

示例:

#include <iostream>
using namespace std;int main()
{//while循环//在屏幕上打印 0 ~ 9 这10个数字int num = 0;//while()中填入循环条件//注意事项:在写循环时,一定要避免死循环的出现。while (1)死循环while (num < 10){ // 循环代码cout << "num = " << num << endl;num++;}system("pause");return 0;
}

注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。

——while循环 练习案例:猜数字

while循环练习案例:猜数字

案例描述:系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。

#include <ctime> // time系统时间头文件

//添加随机数种子,作用:利用当前系统时间生成随机数,防止每次随机数都是一样。

srand((unsigned int)time(NULL));

#include <iostream>
#include <ctime> // time系统时间头文件
using namespace std;int main()
{//添加随机数种子,作用:利用当前系统时间生成随机数,防止每次随机数都是一样。srand((unsigned int)time(NULL));//1、系统生成随机数【rand() % 100:生成0~99的随机数】int num = rand() % 100 + 1; //rand()%100+1 生成 0+1 ~ 99+1 的随机数cout << "系统生成随机数(0~99):" << num << endl;//2、玩家进行猜数int val = 0; //玩家输入数据while (1) //死循环{cin >> val;//3、判断玩家的猜测//猜错:提示猜的结果 过大或过小,重新返回第二步if (val > num){cout << "猜测过大!\n"<< endl;}else if (val < num){cout << "猜测过小!\n"<< endl;}else{cout << "猜测正确!\n"<< endl;//猜对:退出游戏break; //break, 可以利用该关键字退出当前循环。}}system("pause");return 0;
}

4.2.2 do...while循环语句

作用: 满足循环条件,执行循环语句。

语法: do{ 循环语句 } while(循环条件);

注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件。

示例:

#include <iostream>
using namespace std;int main()
{//do...while循环语句//在屏幕中输出0~9这10个数字int num = 0;do{cout << num << endl;num++;} while (num < 10);num = 0;do{cout << num << endl;num++;} while (num); // 死循环!!!num = 0;//while (num < 10 ) // 输出0~9while (num) //不执行任何代码{cout << num << endl;num++;}//do...while和while循环区别在于do...while会先执行一次循环语句system("pause");return 0;
}

总结:与while循环区别在于,do...while先执行一次循环语句,再判断循环条件。

——do...while循环 练习案例:水仙花数

练习案例:水仙花数

案例描述:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。

例如:1^3 + 5^3+ 3^3 = 153

请利用do...while语句,求出所有3位数中的水仙花数。

#include <iostream>
using namespace std;int main()
{//1、先打印所有的三位数int num = 100;do{//2、从所有的三位数字中找到水仙花数int a = 0; //个位int b = 0; //十位int c = 0; //百位a = num % 10;      //获取数字的个位b = num / 10 % 10; //获取数字的十位c = num / 100;       //获取数字的百位if (a * a * a + b * b * b + c * c * c == num) //如果是水仙花数,才打印{cout << num << endl;}num++;} while (num < 1000);system("pause");return 0;
}

4.2.3 for循环语句

作用: 满足循环条件,执行循环语句。

语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }

示例:

#include <iostream>
using namespace std;int main()
{//for循环//打印数字0~9for (int i = 0; i < 10; i++){cout << i << endl;}//同义拆分int i = 0;for (;;){if (i >= 10){break;}cout << i << endl;i++;}system("pause");return 0;
}

详解:

注意:for循环中的表达式,要用分号进行分隔。

总结:while、do...while、for都是开发中常用的循环语句,for循环结构比较清晰,比较常用。

——for循环 练习案例:敲桌子

练习案例:敲桌子

案例描述:从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。

 

#include <iostream>
using namespace std;int main()
{//1、先输出1~100数字for (int i = 1; i <= 100; i++){//2、从100个数中找到特殊的数字,打印“敲桌子!”//如果是7的倍数、个位是7、十位是7,打印“敲桌子!”if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) //如果是特殊数字,打印“敲桌子!”{cout << "敲桌子!" << endl;}else //如果不是特殊数字,打印数字{cout << i << endl;}}system("pause");return 0;
}

4.2.4 嵌套循环

作用: 在循环体中再嵌套一层循环,解决一些实际问题。

例如我们想在屏幕中打印如下图片,就需要利用嵌套循环。

 

#include <iostream>
using namespace std;int main()
{//利用嵌套循环实现星图//外层循环执行1次,内层循环执行1轮(1周)for (int i = 0; i < 10; i++) //外层循环:打印一行星图{for (int j = 0; j < 10; j++) //内层循环:打印一行*{cout << "*"<< " "; //*加空格}cout << endl; //换行}return 0;
}

——for循环嵌套 练习案例:乘法口诀表

练习案例:乘法口诀表

案例描述:利用嵌套循环,实现九九乘法表。

#include <iostream>
using namespace std;int main()
{//乘法口诀表for (int i = 1; i <= 9; i++) //打印行数{// cout << i << endl;for (int j = 1; j <= i; j++) //打印列数{cout << j << "*" << i << "=" << i * j << "  ";}cout << endl;}system("pause");return 0;
}

4.3 跳转语句

4.3.1 break语句

作用: 用于跳出选择结构或者循环结构。

break使用的时机:

  • 出现在switch条件语句中,作用是终止case并跳出switch。

  • 出现在循环语句中,作用是跳出当前的循环语句。

  • 出现在嵌套循环中,跳出最近的内层循环语句。

——示例

#include <iostream>
using namespace std;int main() //break的使用时机
{//1、在switch语句中使用breakcout << "请选择您挑战副本的难度:" << endl;cout << "1、普通!" << endl;cout << "2、中等!" << endl;cout << "3、困难!" << endl;int num = 0; //创建选择结果的变量cin >> num;  //等待用户输入switch (num){case 1:cout << "您选择的是普通难度!" << endl;break; //退出switch语句case 2:cout << "您选择的是中等难度!" << endl;break;case 3:cout << "您选择的是困难难度!" << endl;break;}//2、在循环语句中用breakfor (int i = 0; i < 10; i++){if (i == 5) //如果i等于5,退出循环,不再打印{break; // 跳出循环语句}cout << i << endl;}//3、在嵌套循环语句中使用break,退出内层循环【出现在嵌套循环语句中】for (int i = 0; i < 10; i++){for (int j = 0; j < 10; j++){if (j == 5){break; //退出内层循环}cout << "*" << " ";}cout << endl;}return 0;
}

4.3.2 continue语句

作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。

——示例

#include <iostream>
using namespace std;int main()
{//continue语句for (int i = 0; i < 100; i++){if (i % 2 == 0) //奇数输出,偶数不输出,0 2 4 6 8 10{continue; //作用:可以筛选条件,执行到此就不再向下执行;执行下一次循环//break会退出循环,而continue不会}cout << i << endl;}system("pause");return 0;
}

注意:continue并没有使整个循环终止,而break会跳出循环。

4.3.3 goto语句

作用:可以无条件跳转语句。

语法: goto 标记; 如: goto FLAG;【一般用纯大写单词!】

解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。

——示例

  

#include <iostream>
using namespace std;int main() //goto语句
{cout << "1、xxx" << endl;cout << "2、xxx" << endl;goto FLAG;cout << "3、xxx" << endl;cout << "4、xxx" << endl;FLAG:cout << "5、xxx" << endl;system("pause");return 0;
}

注意:在程序中不建议使用goto语句,以免造成程序流程混乱。

C++阶段01笔记04【程序流程结构(选择结构、循环结构、跳转语句)】相关推荐

  1. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

  2. Python程序控制结构(二)循环结构:for in遍历循环,while无限循环,循环+else

    Python程序控制结构(二)循环结构: 1. for in遍历循环 2. while无限循环 一.遍历循环 二.遍历循环的应用 遍历循环是使用for in保留字形成的一种循环,它能够对遍历结构中的每 ...

  3. java选择循环_java选择和循环结构

    选择和循环结构 顺序 (1)按照程序的流程从上而下执行流程. 选择结构 If 概念 对条件判断[一个条件的结果:true:false] 执行判断结果,所想要处理的代码 如果(true){ System ...

  4. java--顺序、选择、循环结构

    顺序.选择.循环结构 1. 流程控制 1.1 概述 1.2 分类 1.3 顺序结构 2.选择结构 2. 1选择结构之if语句 单分支 双分支 案例 重要点 多分支 案例 2.2 选择结构之switch ...

  5. c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc

    C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...

  6. Java入门之顺序、选择、循环结构

    Java入门之顺序.选择.循环结构 顺序结构: package com.LynnStudy.scanner; import java.util.Scanner; /*** @Author hql* @ ...

  7. c语言程序设计循环结构实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc...

    C语言程序设计实验报告选择与循环结构程序设计 学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C++与程序设计 专业班级: 通信121 姓 名: 学 号: 学生实验报告(2) 学生姓 ...

  8. C#选择与循环结构,运算符

    世界上只有一种英雄主义,就是在认清生活的本质后,还依旧热爱着生活. 四个控制台函数 ** 我们在学习C#时,常常会用到下面四个函数,用来对数据的打印显示和键入. Console.Write(): Co ...

  9. 吐血整理:C#顺序、选择、循环结构用法与案例,这一篇就够了!

    C#语言中用于结构化程序设计的三种基本结构是:顺序结构.选择结构.循环结构.本文详细整理了以上三种结构的用法,案例. 文章目录 4.1 顺序结构 4.1.1 赋值语句 4.1.2 输入语句 4.1.3 ...

最新文章

  1. linux路由介绍,Linux的路由表详细介绍
  2. 安森美电量计采用内部电阻跟踪电流--电压HG-CVR
  3. 双目测距数学原理详解(转载)
  4. 耗材领用登记系统php_实验室的试剂耗材管理为啥要实现系统管理?
  5. Tableau上面地图与条形图结合_Tableau 全新地图实战演示,更快、更高、更强
  6. vue 中watch函数名_vue中watch的使用
  7. RS编码-Python工具包使用
  8. 程序员必备神器(FastStoneCapture)
  9. Java widget xui_XUI使用总结
  10. 服务器显示htx插槽,华硕最新推出一系列服务器及主板解决方案
  11. 美国国家机器人计划2.0部分项目简介
  12. TCP粘包问题以及解决方法
  13. Windows10系统的Linux子系统中安装MySQL数据库心得
  14. matplotlib画柱状对比图
  15. 实体链接在小布助手和OGraph的实践应用
  16. 【C语言】打印乘法口诀表
  17. cosolog打印带样式的文字及图片
  18. 长短期记忆网络 LSTM
  19. windows下更改应用程序属性的详细信息
  20. mysql同时查两张表数据库表_sql语句 同时查询两个表

热门文章

  1. python3 xml 取标签显示内容_如何应用“XML+XSLT”技术分离Web表示层数据和样式
  2. ### Error building SqlSession.### The error may exist in entity/UserMapper.xml
  3. linux一切对象皆文件,为什么说Linux下“一切皆文件”?
  4. centos挂载u盘只读_完美解决linux下U盘文件只读的问题
  5. 深度学习和目标检测系列教程 21-300:deepsorts测试小车经过的时间和速度
  6. 节能原理 复习(能量平衡+热电联产+联合循环)
  7. 成为一名优秀数据分析师的必经之路
  8. 做科研没人带,发不了文章怎么办?
  9. 从近期两篇论文看大规模商品图嵌入
  10. 重构世界的真实,6万奖金的超分辨率图像性能挑战赛邀你来战!