| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> c++ 第四章 程序流结构 -> 正文阅读 |
|
[C++知识库]c++ 第四章 程序流结构 |
c/c++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
4.1选择结构4.1.1 if语句作用:执行满足条件的语句 if的三种形式
运行效果如图: 4.1.2三目运算符作用:通过三目运算符实现简单的判断 语法:表达式1?表达式2:表达式3 解释:1真走2返2 1假走3返3 #include<iostream> ? using namespace std; int main(){ ? ?//三目运算符 ? ?//创建三个变量 a b c ? ?//将a和b做比较 ,将变量大的值赋给变量c ? ?int a=10; ? ?int b=20; ? ?int c=0; ? ?c=(a>b?a:b); ? ?cout<<" c=(a>b?a:b)="<<c<<endl; ? ?//在c++中三目运算符返回的是变量,可以继续赋值 ? (a>b?a:b)=100; ? ?cout<<"a="<<a<<endl; ? ? cout<<"b="<<b<<endl; ? ?system("pause"); ? ?return 0; } 运行效果如图: 4.1.3 switch语句作用:执行多条件分支语句 语法: switch(表达式) { ? ? ? ?case 结果1: 执行语句;break; ? ? ? ?case 结果2: 执行语句;break; ? ? ? ?case 结果3: 执行语句;break; ? ? ? ?case 结果4: 执行语句;break; ? ? ? ?case 结果5: 执行语句;break; ? ? ? ?'''' ? ? ? ?default:执行语句;break; } #include<iostream> using namespace std; int main(){ ? ?//switch语句 ? ?//给电影打分 ? ?//10~9 经典 ? ?//8~7 非常好 ? ?//6~5 一般 ? ?//5以下 烂片 ? ?//1、提示用户给电影评分 ? ?int score=0; ? ?cout<<"请给电影打分:"<<endl; ? ? ?//2、用户开始进行打分 ? ? cin>>score; ? ?cout<<"您打的分数为:"<<score<<endl; ? ?//3、根据用户输入的分数来提示用户最后的结果 ? ?switch(score) { ? ? ? ?case 10: cout<<"您认为是经典电影"<<endl;break;//break;退出当前分支 ? ? ? ?case 9: cout<<"您认为是经典电影"<<endl;break; ? ? ? ?case 8: cout<<"您认为是非常好"<<endl;break; ? ? ? ?case 7: cout<<"您认为是非常好"<<endl;break; ? ? ? ?case 6: cout<<"您认为是一般"<<endl;break; ? ? ? ?case 5: cout<<"您认为是一般"<<endl;break; ? ? ? ? ? ? ? ? ? ?default:cout<<"您认为是烂片"<<endl;break; } ? ?system("pause"); ? ?return 0; } //if和switch区别 //switch缺点,判断时候智能是整型或者字符型,不可以是一个区间 //switch 优点,结构清晰,执行效率高 //case里如果没有break,那么程序会一直向下执行 运行效果如图: 4.2 循环结构4.2.1 while循环语句作用:满足循环条件,执行循环语句 语法:while(循环条件){循环语句} 解释:==只要循环条件的结果为真,就执行循环语句 #include<iostream> ? using namespace std; int main(){ ? ?//while循环 ? ?//打印出0~9 ? ?int w=0; ? ?//while()填入循环条件 ? ?//注意:要避免死循环 ? ?while(w<10) ? { ? ? ? ?cout<<w<<endl; ? ? ? ?w++; ? ? ? ? ? ? ? } ? ?system("pause"); ? ?return 0; } 运行效果如图: ? #include<iostream> #include<ctime>//time系统时间头文件 using namespace std; int main() { ? ?//添加随机数的种子 作为利用当前系统的时间生成随机数,防止每次随机数都一样 ? ?srand((unsigned int)time(NULL)); ? ?//1、系统随机生成数 ? ?int num = rand() % 100 + 1; // rand()%100生成0~99的随机数 ? ? ? // cout<<num<<endl; ? ? ? ?//2、玩家猜测 ? ?int val = 0;//玩家输入的数据 ? ?while (1) ? { ? ? ? ?cin >> val; ? ? ? ? ?//3、判断玩家的猜测 ? ? ? ?if (val > num) ? ? ? { ? ? ? ? ? ?cout << "猜测过大" << endl; ? ? ? } ? ? ? ?else if (val < num) ? ? ? { ? ? ? ? ? ?cout << "猜测过小" << endl; ? ? ? } ? ? ? ?else { ? ? ? ? ? ?cout << "猜对了" << endl; ? ? ? ? ? ?break;//break在循环中,可以利用该关键字来退出当前循环//猜对 out ? ? ? } ? ? ? ?//猜错 提示猜测过大或者过小 return second step ? } ? ? ? ?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); ? ?system("pause"); ? ?return 0; } //**注意**:与while的区别在于==do....while()会先执行一次循环语句==,再判断循环条件 运行效果如图: exercise:水仙花数 ? #include<iostream> ? using namespace std; int main(){ ? ?//1、先打印所有的三位数字 ? ?int num=100; ? ?do ? { ? ? ? ? //2、从所有三位数字中找到水仙花数 ? ? ? ?int a=0,b=0,c=0;//个十百 ? ? ? ?a=num%10;//ge ? ? ? ?b=num/10%10;//shi ? ? ? ?c=num/100;//bai ? ? ? ?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~9 ? ?for(int i =0;i<10;i++) ? { ? ? ? ?cout<<i<<endl; ? } ? ?system("pause"); ? ?return 0; } 运行效果如图: ? #include<iostream> using namespace std; int main(){ ? ?//敲桌子案例 ? ?//1、先输出1~100数字 ? ?for(int i=1;i<=101;i++) ? { //2、从100个数字中找到特殊数字,打印“敲桌子” ? ?if(i%7==0) {cout<<"敲桌子"<<endl;} ? ?else if(i%10==7) {cout<<"敲桌子"<<endl;} ? ?else if(i/10==7) {cout<<"敲桌子"<<endl;} ? ?else {cout<<i<<endl;} ? } ? ?system("pause"); ? ?return 0; } ? ? #include<iostream> using namespace std; int main(){ ? ?//敲桌子案例 ? ?//1、先输出1~100数字 ? ?for(int i=1;i<=101;i++) ? { //2、从100个数字中找到特殊数字,打印“敲桌子” ? ?if(i%7==0||i%10==7||i/10==7) ? {cout<<"敲桌子"<<endl;} ? ?else cout << i << endl; ? } ? ?system("pause"); ? ?return 0; } ? 运行效果如图: 4.2.4 嵌套循环作用:在循环体中再嵌套一层循环,解决一些实际问题 例如:打印10*10的** #include<iostream> using namespace std; int main() { ? ?//利用循环嵌套实现星图 ? ?//外层循环,外层一层,内层一周 ? ?for (int o = 1; o <= 10; o++) ? { ? ? ? ?//打印一行 ? ? ? ?//内层循环 ? ? ? ?for (int i = 1; i <= 10; i++) ? ? ? { ? ? ? ? ? ?cout << "* "; ? ? ? } ? ? ? ?cout << "endl"; ? } ? ?system("pause"); ? ?return 0; } 乘法口诀 利用嵌套循环,实现九九乘法表 #include<iostream> ? using namespace std; int main(){ ? ?//乘法口诀表 ? ?//打印行 ? ?for(int i=1;i<=9;i++) ? { ? ?for(int j=1;j<=i;j++) ? { ? ? ?cout<<i<<"*"<<j<<"="<<i*j<<" "; ? } ? ? ? cout<<endl; ? ? ? } ? ?system("pause"); ? ?return 0; } 运行效果如图: 4.3 跳转语句4.3.1 break 语句作用:用于跳出选择结构或者循环结构 break使用的时机:
运行效果如图: 4.3.3 goto语句(一般不使用)作用:可以无条件跳转语句 语句:goto 标记; 解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置 示例 #include<iostream> using namespace std; int main() { ? ?//goto 语句 ? ?cout << "1、xxxx" << endl; ? ?cout << "2、xxxx" << endl; ? ?goto FLAG; ? ?cout << "3、xxxx" << endl; ? ?cout << "4、xxxx" << endl; FLAG: ? ?cout << "5、xxxx" << endl; ? ?cout << "6、xxxx" << endl; ? ?system("pause"); ? ?return 0; } 运行效果如图: |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:11:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |