跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
帮助
汉语教学技术研究与应用
搜索
搜索
外观
登录
个人工具
登录
查看“︁Cpp class exercise 3”︁的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
联系我们
微信公众号
外观
移至侧栏
隐藏
←
Cpp class exercise 3
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE: “C++ 编程入门班” 练习三}} == 本课学习目标 == * 完成所有基本程序结构(顺序、分支、循环)语句的学习 ** switch语句 ** 循环结构中break和continue语句的使用 * 复习巩固各程序结构的语句 ** 进一步熟悉同类结构中不同语句之间的区别(例如switch语句和 if语句、if-else语句的区别,while循环和do-while循环的区别) ** 结构的嵌套 ** 使用流程图 == 预习部分 == === 预习说明 === 自行输入【例3.1】,编辑至运行通过。 自行输入【例3.4】,编辑至运行通过。 注意观察有、无 break语句时,运行次数的区别。 === switch语句 === switch(开关)语句提供了一种比较简洁的方式来处理多分支。 switch语句的语法格式: <syntaxhighlight lang="C++" line> switch(表达式) { case 常量: 分支1处理语句; break; case 2: 分支2处理语句; break; case 3: 分支3处理语句; break; …… …… default: 其它情况处理语句; } </syntaxhighlight> 【例3.1】使用switch语句转换数字为星期名称 <syntaxhighlight lang="C++" line> #include <iostream> using namespace std; int main() { int weekday = 0; cin >> weekday; //接收用户输入 switch(weekday) { 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; case 7: cout << "星期天" <<endl; break; default: cout << "请输入正确的数字!" <<endl; } return 0; } </syntaxhighlight> 可以对比【例3.2】、【例3.3】来理解switch的优点。 【例3.2】使用嵌套的if-else语句 <syntaxhighlight lang="C++" line> #include <iostream> using namespace std; int main() { int weekday = 0; cin >> weekday; //接收用户输入 if(weekday == 1) cout << "星期一" <<endl; else if(weekday == 2) cout << "星期二" <<endl; else if(weekday == 3) cout << "星期三" <<endl; else if(weekday == 4) cout << "星期四" <<endl; else if(weekday == 5) cout << "星期五" <<endl; else if(weekday == 6) cout << "星期六" <<endl; else if(weekday == 7) cout << "星期天" <<endl; else cout << "请输入正确的数字!" <<endl; return 0; } </syntaxhighlight> 【例3.2】使用多重嵌套的if-else语句,即使层层缩进,也不易阅读,结构过于复杂。 【例3.3】使用无嵌套的if语句 <syntaxhighlight lang="C++" line> #include <iostream> using namespace std; int main() { int weekday = 0; cin >> weekday; //接收用户输入 if(weekday == 1) cout << "星期一" <<endl; if(weekday == 2) cout << "星期二" <<endl; if(weekday == 3) cout << "星期三" <<endl; if(weekday == 4) cout << "星期四" <<endl; if(weekday == 5) cout << "星期五" <<endl; if(weekday == 6) cout << "星期六" <<endl; if(weekday == 7) cout << "星期天" <<endl; if(weekday < 1 || weekday > 7) // ||表示“或” cout << "请输入正确的数字!" <<endl; return 0; } </syntaxhighlight> 【例3.3】使用无嵌套的if语句,相比【例3.2】结构简洁,但是每个分支都要执行,增加了程序运行时间。 === break语句 === break 语句用于跳出循环,如果已经满足某个条件,或者以及达到运行目的,可以用break提前停止当前循环。 【例3.4】质数的判断 <syntaxhighlight lang="C++" line> #include <iostream> using namespace std; int main() { int n =0; int count=0;// int flag = 1; //1: 是质数 0:不是质数 cout << "请输入一个大于2的整数:" <<endl; cin >> n; for(int i=2;i<n;i++) { count++; if(n % i == 0) { flag = 0; break; //只要有一个数能被整除,就可以确定不是质数了 } } cout << "运行了" << count << "次判断" <<endl; if(flag == 1) cout << n << "是质数" <<endl; else cout << n << "不是质数" <<endl; return 0; } </syntaxhighlight> 可以把第18行的break注释或删除,比较一下运行次数的不同。 == 课堂练习说明 == 注明“需要自行输入”的,需要自己打字,完成代码编写。 可以先复制代码到编辑器,然后设置为注释,再看着打字。 使用桌面上的极速浏览器(最新版本的Chrome 浏览器,不是360浏览器)可以避免把行号一起复制 如果使用其它浏览器,复制后带上了行号,可以按住 Alt 竖选文本,快速删除行号 == 课堂练习 == === 实例:数字菜单 === 【例3.5】使用do-while嵌套switch实现的数字菜单 <syntaxhighlight lang="C++" line> #include <iostream> using namespace std; int main() { //接收用户选择 int choice = 0; do{ //输出菜单 cout << "1 2 3 4 5 0" <<endl; cout << "请选择需要的操作:" <<endl; cin >> choice ; switch(choice) { case 1: cout << choice <<endl; break; case 2: cout << choice <<endl; break; case 3: cout << choice <<endl; break; case 4: cout << choice <<endl; break; case 5: cout << choice <<endl; break; case 0: cout << choice <<endl; break; default: cout << "请输入正确的数字!" <<endl; } } while(choice!=0); cout << "退出主程序!" <<endl; return 0; } </syntaxhighlight> === continue 语句 === 【例3.6】2层for循环,查找1-100内的质数 <syntaxhighlight lang="C++" line> #include <iostream> using namespace std; int main() { int n =0; int count=0;// (内层)循环计数 cout << "查找1-100内的质数" <<endl; for(int n=2;n<=100;n++) { int flag = 1; //1: 是质数 0:不是质数 for(int i=2;i<n;i++) { count++; if(n % i == 0) { flag = 0; break; } } if(flag == 0) continue; cout << n << "是质数" <<endl; } cout << "运行了" << count << "次判断" <<endl; return 0; } </syntaxhighlight> === 基本程序结构复习 === 基本程序结构复习: [http://wiki.hanyu123.cn/wiki/Cpp_class_index#.E5.9F.BA.E6.9C.AC.E7.A8.8B.E5.BA.8F.E7.BB.93.E6.9E.84 流程图演示] 使用ProcessOn绘制基本程序结构: https://www.processon.com/
返回
Cpp class exercise 3
。
搜索
搜索
查看“︁Cpp class exercise 3”︁的源代码
添加话题