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++ 学习(四)程序流程结构 - 顺序结构、选择结构、循环结构、跳转语句相关推荐

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

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

  2. 流程控制语句—顺序、选择、循环

    流程控制语句-顺序.选择.循环 1.  概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.在清楚每条语句的执行流程的前提下,才能通过 ...

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

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

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

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

  5. 【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 ...

  6. c 语言程序的三种基本结构,C 语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构...

    C 语言程序的三种基本结构是____ A.顺序结构,选择结构,循环结构 B.递归结构,循环结构,转移结构 更多相关问题 [填空题]移动电商,全称 ,是以 为载体的电商模式. [单选题]有关离子选择性电 ...

  7. C++ —— C++三大分支结构(顺序、选择、循环)

    C++ --三大结构(顺序.选择.循环) 一.顺序结构的几种常用语句 1.声明语句 程序中所有由程序员给出的名字标识符,包括变量.常量.对象.类.类型.函数.参数等都要在使用前进行说明或定义.一般地, ...

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

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

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

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

  10. c语言 循环结构 ppt,C语言中 循环结构.ppt

    <C语言中 循环结构.ppt>由会员分享,可在线阅读,更多相关<C语言中 循环结构.ppt(42页珍藏版)>请在皮匠网上搜索. 1.第五章循环控制结构,1,本章知识点:,whi ...

最新文章

  1. 在Win7中安装Oracle 10g时检测报错的解决办法
  2. ubuntu 12.04及12.10无法安装 ia32-libs
  3. 文科生的数据分析:亲测有效,真香!!!
  4. 完善ext.grid.panel中的查询功能(紧接上一篇)
  5. 遍历同辈节电的方法_JQuery遍历DOM节点的方法
  6. react学习(47)----react中initialValue和value不能一起定义
  7. 尬出天际!和导师微信聊天大型翻车现场!
  8. python中关于正则表达式二
  9. 2019牛客多校第二场E MAZE(线段树 + 矩阵)题解
  10. .tar.bz2 解压出错问题解决方案
  11. ios系统软件迁移到安卓_苹果一键换机到安卓(苹果安卓一键迁移的软件)
  12. 产品设计过程中的沉没成本和禀赋效应
  13. 如何直接打印int[]数组
  14. ffmpeg_Cropping video(剪裁视频)命令行
  15. 我见过最全的剖析QEMU原理的文章[Z]
  16. 如何彻底删除adsafe
  17. 如何给U盘或移动硬盘分配固定盘符
  18. sqlServer批量导出导入单表数据
  19. 对话李斌:无需纠结是否在硅谷造车 特斯拉有的功能蔚来全有
  20. dwcs5这么写php,如何备份Dreamweaver CS5的人个设置信息

热门文章

  1. 这10个学习资源网站,一年能帮你省下几十万的学费
  2. 前端修改input上传的图片大小
  3. certbot申请通配符域名证书
  4. jy-12-SPRINGMYBATIS02——云笔记06-刘苍松
  5. 5项基因改造让你拥抱大财富
  6. 状态压缩:对动态规划进行降维打击
  7. oeasy教您玩转linux010206toilet
  8. 计算机专业进国企有什么难度,大学毕业后才发现,国企与私企的差距不是一星半点,希望你没选错...
  9. JAVA-读取excel转成html 将excel表格转换为HTML文件格式 转成前端表格样式
  10. veu报No Babel config file detected for xxx