| |
|
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/24 12:22:22- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |