C++ 学习(四)程序流程结构 - 顺序结构、选择结构、循环结构、跳转语句
1、顺序结构
程序按编码顺序执行,不发生跳转。
2、选择结构
(1)if语句
包含单条件if语句、多条件if语句及嵌套if语句
C++ if语句
#include <iostream>
using namespace std;int main()
{//选择结构//例:输入分数,判断是几本分数线:580 - 750 一本线, 420 - 579 二本线; 300 - 419 三本线;< 300 落榜int score;cout << "请输入您的分数:" << endl;cin >> score;cout << "您输入的分数为:" << score << endl;//单条件if语句if (score > 750 || score < 0){cout << "您输入的分数不在分数线范围内,请重新输入!" << endl;cin >> score;}//多条件if语句if (score < 300){cout << "抱歉,您落榜了" << endl;}else if (score < 420){cout << "恭喜,您考上了三本分数线" << endl;}else if (score < 580){cout << "恭喜,您考上了二本分数线" << endl;}else{cout << "恭喜,您考上了一本分数线" << endl;//嵌套if语句if (score == 750){cout << "恭喜,您是高考状元无疑了" << endl;}}system("pause");return 0;
}
输出结果(只展示其中一个测试结果)
请输入您的分数:
900
您输入的分数为:900
您输入的分数不在分数线范围内,请重新输入!
750
恭喜,您考上了一本分数线
恭喜,您是高考状元无疑了
Go语言if语句
package mainimport "fmt"func main() {var score intfmt.Println("请输入您的分数:")fmt.Scan(&score)fmt.Println("您输入的分数为:", score)if score > 750 || score < 0 {fmt.Println("您输入的分数不在分数线范围内,请重新输入!")fmt.Scan(&score)}if score < 300 {fmt.Println("抱歉,您落榜了")} else if score < 420 {fmt.Println("恭喜,您考上了三本分数线")} else if score < 580 {fmt.Println("恭喜,您考上了二本分数线")} else {fmt.Println("恭喜,您考上了一本分数线")if score == 750 {fmt.Println("恭喜,您是高考状元无疑了")}}
}
输出结果(只展示其中一个测试结果)
请输入您的分数:
-1
您输入的分数为: -1
您输入的分数不在分数线范围内,请重新输入!
666
恭喜,您考上了一本分数线
(2) 三目运算符
语法: 表达式1 ? 表达式2 : 表达式3
如果表达式1 为真,执行表达式2,否则执行表达式3
在C++中,若三目运算符返回的是变量,可以继续赋值。
C++三目运算符
#include <iostream>
using namespace std;int main()
{//选择结构 - 三目运算符int a = 5;int b = 3;int c = 0;c = (a > b ? a : b);cout << "c = " << c << endl;//在C++中,若三目运算符返回的是变量,可以继续赋值(a > b ? a : b) = 10;cout << "a = " << a << endl;cout << "b = " << b << endl;system("pause");return 0;
}
输出结果
c = 5
a = 10
b = 3
Go语言中没有三目运算符
(3)switch语句
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
C++中switch语句(break)
C++选择结构switch语句中,若只想执行符合的case语句,不再执行下面的case,需要加break;若不加break,则会执行下面的case,不判断下面的的case是否为true。
switch语句与if语句区别:switch判断时只能是整型或字符型,不可以是一个区间; switch结构清晰,执行效率更高。
#include <iostream>
using namespace std;int main()
{//选择结构 - switch//例:输入0-6数字,输出星期几int day;cout << "请输入0-6数字:" << endl;cin >> day;cout << "您输入的数字为:" << day << endl;switch (day){case 0:cout << "星期日" << endl;break;case 1:cout << "星期一" << endl;break;case 2:cout << "星期二" << endl;break;case 3:cout << "星期三" << endl;break;case 4:cout << "星期四" << endl;break;case 5:cout << "星期五" << endl;//此处没加breakcase 6:cout << "星期六" << endl;break;default:cout << "输入错误" << endl;break;}system("pause");return 0;
}
输出结果(仅展示其中一种情况,没有break的case分支)
请输入0-6数字:
5
您输入的数字为:5
星期五
星期六
Go语言中switch语句(fallthrough)
在Go语言中,switch语句中的case默认自带break(这与C++不同),匹配成功后不会执行其它case语句;若想执行下面的case语句,可以使用 fallthrough,会强制执行后面的 case 语句,不会判断后面的case是否为true。
Go语言中,switch语句与if区别:判断时不限制为整型或字符型(这点与C++不同),只要是相同的类型即可,判断不可以是一个区间
package mainimport "fmt"func main() {var day intfmt.Println("请输入0-6数字:")fmt.Scan(&day)fmt.Println("您输入的数字为:", day)switch day {case 0:fmt.Println("星期日")case 1:fmt.Println("星期一")case 2:fmt.Println("星期二")case 3:fmt.Println("星期三")case 4:fmt.Println("星期四")case 5:fmt.Println("星期五")//fallthrough 会强制执行后面的 case 语句,不会判断后面的case是否为true//此处仅为演示fallthrough,用在这个例子中肯定是不合适的fallthroughcase 6:fmt.Println("星期六")default:fmt.Println("输入错误")}
}
输出结果(仅展示其中一种情况,包含fallthrough的case分支)
请输入0-6数字:
5
您输入的数字为: 5
星期五
星期六
3、循环结构
满足循环条件,执行循环语句,需要避免死循环
(1)while 循环语句
C++ while循环语句
语法:while (循环条件) { 循环语句 }
循环语句中可以使用break退出当前循环
#include <iostream>
using namespace std;int main()
{//循环结构//while循环语句int i = 0;while (i < 5) {cout << "while - 第 " << i + 1 << " 次循环" << endl;i++;}system("pause");return 0;
}
输出结果
while - 第 1 次循环
while - 第 2 次循环
while - 第 3 次循环
while - 第 4 次循环
while - 第 5 次循环
Go语言中没有while循环语句
(2)do while 循环语句
C++ do while 循环语句
do { 循环语句 } while (循环条件);
do...while语句总是会先执行一次循环语句,再判断循环条件
do...while语句与while语句区别:do...while会先执行一次循环语句
#include <iostream>
using namespace std;int main()
{//循环结构//do while循环语句i = 0;do{cout << "do while - 第 " << i + 1 << " 次循环" << endl;i++;} while (i < 5);system("pause");return 0;
}
输出结果
do while - 第 1 次循环
do while - 第 2 次循环
do while - 第 3 次循环
do while - 第 4 次循环
do while - 第 5 次循环
Go语言中没有do while循环语句
(3)for 循环语句
C++ for 循环语句
语法:for (起始表达式; 条件表达式; 末尾循环体) { 循环语句 }
#include <iostream>
using namespace std;int main()
{//循环结构//for 循环语句i = 0;for (; i < 5; i++){cout << "for - 第 " << i + 1 << " 次循环" << endl;}system("pause");return 0;
}
输出结果
for - 第 1 次循环
for - 第 2 次循环
for - 第 3 次循环
for - 第 4 次循环
for - 第 5 次循环
Go语言 for 循环语句
package mainimport "fmt"func main() {for i:=0; i < 5; i++ {fmt.Printf("for - 第 %d 次循环\n", i + 1)}
}
输出结果
for - 第 1 次循环
for - 第 2 次循环
for - 第 3 次循环
for - 第 4 次循环
for - 第 5 次循环
4、跳转语句
(1)break语句
用于跳出选择结构 或者 循环结构
C++ break语句
switch条件语句中,终止case并跳出switch(参见上面选择语句中的switch)
在循环语句中,跳出当前的循环语句
在嵌套循环中,跳出最近的内层循环语句
#include <iostream>
using namespace std;int main()
{//跳转语句//breakfor (int i = 0; i < 5; i++){cout << "for - 第 " << i + 1 << " 次循环" << endl;if (i == 2) {cout << "跳出循环" << endl;break;}}//跳出内循环for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){cout << "for - 第 " << j + 1 << " 次循环" << endl;if (j == 1) {cout << "跳出内循环" << endl;break;}}}system("pause");return 0;
}
输出结果
for - 第 1 次循环
for - 第 2 次循环
for - 第 3 次循环
跳出循环
for - 第 1 次循环
for - 第 2 次循环
跳出内循环
for - 第 1 次循环
for - 第 2 次循环
跳出内循环
for - 第 1 次循环
for - 第 2 次循环
跳出内循环
Go语言break语句
在循环语句中,跳出当前的循环语句
在嵌套循环中,跳出最近的内层循环语句
package mainimport "fmt"func main() {for i:=0; i < 5; i++ {fmt.Printf("for - 第 %d 次循环\n", i + 1)if i == 2 {fmt.Println("跳出循环")break}}//跳出内循环for i:=0; i < 3; i++ {for j:=0; j < 3; j++ {fmt.Printf("for - 第 %d 次循环\n", i + 1)if j == 1 {fmt.Println("跳出内循环")break}}}
}
输出结果
for - 第 1 次循环
for - 第 2 次循环
for - 第 3 次循环
跳出循环
for - 第 1 次循环
for - 第 1 次循环
跳出内循环
for - 第 2 次循环
for - 第 2 次循环
跳出内循环
for - 第 3 次循环
for - 第 3 次循环
跳出内循环
(2)continue语句
在循环语句中,路过本次循环(不执行尚未执行的语句),继续执行下一次循环。
C++ continue语句
#include <iostream>
using namespace std;int main()
{//跳转语句//continuefor (int i = 0; i < 5; i++){if (i % 2 == 0) {cout << "跳过本次循环" << endl;continue;}cout << "for - 第 " << i + 1 << " 次循环" << endl;}system("pause");return 0;
}
输出结果
跳过本次循环
for - 第 2 次循环
跳过本次循环
for - 第 4 次循环
跳过本次循环
Go语言 continue语句
package mainimport "fmt"func main() {//continue语句for i:=0; i < 5; i++ {if i % 2 == 0 {fmt.Println("跳过本次循环")continue}fmt.Printf("for - 第 %d 次循环\n", i + 1)}
}
输出结果
跳过本次循环
for - 第 2 次循环
跳过本次循环
for - 第 4 次循环
跳过本次循环
(3)goto语句
无条件跳转语句,尽量避免使用goto语句。
C++ goto语句
语法: goto 标记;
#include <iostream>
using namespace std;int main()
{//跳转语句//goto语句int i = 0;
LOOP: for (; i < 5; i++) {if (i == 2) {i++;cout << "" << endl;goto LOOP;}cout << "for - 第 " << i + 1 << " 次循环" << endl;}system("pause");return 0;
}
输出结果
for - 第 1 次循环
for - 第 2 次循环
当 i==2 时跳转,跳转前需要i++,否则死循环
for - 第 4 次循环
for - 第 5 次循环
Go语言 goto语句
package mainimport "fmt"func main() {//goto语句i := 0LOOP: for ; i < 5; i++ {if i == 2 {i++fmt.Println("当 i==2 时跳转,跳转前需要i++,否则死循环")goto LOOP}fmt.Printf("for - 第 %d 次循环\n", i + 1)}
}
输出结果
for - 第 1 次循环
for - 第 2 次循环
当 i==2 时跳转,跳转前需要i++,否则死循环
for - 第 4 次循环
for - 第 5 次循环
C++ 学习(四)程序流程结构 - 顺序结构、选择结构、循环结构、跳转语句相关推荐
- Java入门之顺序、选择、循环结构
Java入门之顺序.选择.循环结构 顺序结构: package com.LynnStudy.scanner; import java.util.Scanner; /*** @Author hql* @ ...
- 流程控制语句—顺序、选择、循环
流程控制语句-顺序.选择.循环 1. 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.在清楚每条语句的执行流程的前提下,才能通过 ...
- 吐血整理:C#顺序、选择、循环结构用法与案例,这一篇就够了!
C#语言中用于结构化程序设计的三种基本结构是:顺序结构.选择结构.循环结构.本文详细整理了以上三种结构的用法,案例. 文章目录 4.1 顺序结构 4.1.1 赋值语句 4.1.2 输入语句 4.1.3 ...
- java--顺序、选择、循环结构
顺序.选择.循环结构 1. 流程控制 1.1 概述 1.2 分类 1.3 顺序结构 2.选择结构 2. 1选择结构之if语句 单分支 双分支 案例 重要点 多分支 案例 2.2 选择结构之switch ...
- 【C语言】C语言的三种基本控制结构-顺序、选择、循环
目录 1.算法 1.1算法的概念 1.2算法的表示方法 1.2.1自然语言 1.2.2流程图 1.2.3伪代码 1.2.4C语言 2.C语句 3.数据的输入输出 3.1格式输入输出函数 1.print ...
- c 语言程序的三种基本结构,C 语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构...
C 语言程序的三种基本结构是____ A.顺序结构,选择结构,循环结构 B.递归结构,循环结构,转移结构 更多相关问题 [填空题]移动电商,全称 ,是以 为载体的电商模式. [单选题]有关离子选择性电 ...
- C++ —— C++三大分支结构(顺序、选择、循环)
C++ --三大结构(顺序.选择.循环) 一.顺序结构的几种常用语句 1.声明语句 程序中所有由程序员给出的名字标识符,包括变量.常量.对象.类.类型.函数.参数等都要在使用前进行说明或定义.一般地, ...
- java选择循环_java选择和循环结构
选择和循环结构 顺序 (1)按照程序的流程从上而下执行流程. 选择结构 If 概念 对条件判断[一个条件的结果:true:false] 执行判断结果,所想要处理的代码 如果(true){ System ...
- c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc
C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...
- c语言 循环结构 ppt,C语言中 循环结构.ppt
<C语言中 循环结构.ppt>由会员分享,可在线阅读,更多相关<C语言中 循环结构.ppt(42页珍藏版)>请在皮匠网上搜索. 1.第五章循环控制结构,1,本章知识点:,whi ...
最新文章
- 在Win7中安装Oracle 10g时检测报错的解决办法
- ubuntu 12.04及12.10无法安装 ia32-libs
- 文科生的数据分析:亲测有效,真香!!!
- 完善ext.grid.panel中的查询功能(紧接上一篇)
- 遍历同辈节电的方法_JQuery遍历DOM节点的方法
- react学习(47)----react中initialValue和value不能一起定义
- 尬出天际!和导师微信聊天大型翻车现场!
- python中关于正则表达式二
- 2019牛客多校第二场E MAZE(线段树 + 矩阵)题解
- .tar.bz2 解压出错问题解决方案
- ios系统软件迁移到安卓_苹果一键换机到安卓(苹果安卓一键迁移的软件)
- 产品设计过程中的沉没成本和禀赋效应
- 如何直接打印int[]数组
- ffmpeg_Cropping video(剪裁视频)命令行
- 我见过最全的剖析QEMU原理的文章[Z]
- 如何彻底删除adsafe
- 如何给U盘或移动硬盘分配固定盘符
- sqlServer批量导出导入单表数据
- 对话李斌:无需纠结是否在硅谷造车 特斯拉有的功能蔚来全有
- dwcs5这么写php,如何备份Dreamweaver CS5的人个设置信息
热门文章
- 这10个学习资源网站,一年能帮你省下几十万的学费
- 前端修改input上传的图片大小
- certbot申请通配符域名证书
- jy-12-SPRINGMYBATIS02——云笔记06-刘苍松
- 5项基因改造让你拥抱大财富
- 状态压缩:对动态规划进行降维打击
- oeasy教您玩转linux010206toilet
- 计算机专业进国企有什么难度,大学毕业后才发现,国企与私企的差距不是一星半点,希望你没选错...
- JAVA-读取excel转成html 将excel表格转换为HTML文件格式 转成前端表格样式
- veu报No Babel config file detected for xxx