IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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的三种形式

  • 单行格式if语句

  • 多行格式if语句

  • 多条件的if语句

    1、单行格式if语句

    #include<iostream>
    using namespace std;
    int main(){
     ? ?//选择结构 单行if语句
     ? ?//输入用户分数,if(s>600),cout
     ? ?//1、用户输入分数
     ? ?int score=0;
     ? ?cout <<"please enter a score:"<<endl;
     ? ?cin>>score;
     ? ?//2、打印用户输入的分数
     ? ?cout<<"your score is "<<score <<endl;
     ? ?//3、判断分数是否大于600,如果大于,那么输出
     ? ?//注意事项,if条件后面不要直接加;
     ? ?if(score>600)
     ?  {
     ? ? ? ?cout <<"恭喜您考上了一本大学!"<<endl;
     ?  }
     ? ?system("pause");
     ? ?return 0;
    }

    运行效果如图:

  • 2、多行格式if语句:if(条件){条件满足执行的语句}else{条件不满足执行的语句}

     

    #include<iostream>
    using namespace std;
    int main(){
     ? ?//选择结构 - 多行if语句
     ? ?//score>600-->good
     ? ?//score<600--not so good
     ? ?//1、submit score
     ? ?int score=0;
     ? ?cout<<"please submit your score ,thanks"<<endl;
     ? ? ? ?cin>>score;
     ? ?//2、show score
     ? ? ? ?cout<<"your score is "<<score<<endl;
     ? ?//3、IS good or not
     ? ?if(score>600){ cout<<"good"<<endl;}
     ? ?else{ cout<<"not so good"<<endl;}
     ? ?system("pause");
     ? ?return 0;
    }

    运行效果如图:

  • 3、多条件的if语句:if(条件1){条件满足执行的语句}else if (条件2){条件满足执行的语句}else {都不满足执行的语句}

     

    #include<iostream>
    ?
    using namespace std;
    int main(){
     ? ?//选择结构 多条件if语句
     ? ?//submit scores,if s>600 ,very good
     ? ?//if s>500 ,good
     ? ?//if s>400 ,not so good
     ? ?//if s<=400 ,just so so
     ? ?//1、score
     ? ?int score=0;
     ? ?cout<<"submit your score"<<endl;
     ? ?cin>>score;
     ? ?//2、show score
     ? ?cout<<"your score is "<<score<<endl;
     ? ?//3、Is if s>600 ,very good
     ? ?if(score>600) {
     ? ? ? ?cout<<"you are very good!"<<endl;
     ?  }
     ? ?//if s>500 ,good
     ? ?else if(score >500) {
     ? ? ? ?cout <<"your score is good!"<<endl;
     ?  }
     ? ?//if s>400 ,not so good
     ? ?else if(score>400){
     ? ? ? ?cout<<"your score is not so good!"<<endl;
     ?  }
     ? ?//if s<=400 ,just so so
     ? ?else if(score<=400){
    cout<<"your score is just so so!"<<endl;}
     ? ?else {
     ? ? ? ?cout<<"your score is so bad!"<<endl;
     ?  }
     ? ?system("pause");
     ? ?return 0;
    }

    运行效果如图:

  • 嵌套if语句:在if语句中可以嵌套使用if语句

    #include<iostream>
    ?
    using namespace std;
    int main(){
     ? ?//选择结构 多条件if语句
     ? ?//submit scores,if s>600 ,very good
     ? ?//if s>500 ,good
     ? ?//if s>400 ,not so good
     ? ?//if s<=400 ,just so so
     ? ?//1、score
     ? ?int score=0;
     ? ?cout<<"submit your score"<<endl;
     ? ?cin>>score;
     ? ?//2、show score
     ? ?cout<<"your score is "<<score<<endl;
     ? ?//3、Is if s>600 ,very good
     ? ?if(score>600) {
     ? ? ? ?cout<<"you are very good!"<<endl;
     ? ? ? ?//s>700->北大
     ? ? ? ?if(score>700) {cout<<"you can enter beida!"<<endl;}
     ? ? ? ?//s>650->清华
     ? ? ? ?else if(score>650){ cout<<"you can enter qinghua!"<<endl;}
     ? ? ? ?//其他->人大
     ? ? ? ?else { cout<<"you can enter qinghua!"<<endl;}
     ?  }
     ? ?//if s>500 ,good
     ? ?else if(score >500) {
     ? ? ? ?cout <<"your score is good!"<<endl;
     ?  }
     ? ?//if s>400 ,not so good
     ? ?else if(score>400){
     ? ? ? ?cout<<"your score is not so good!"<<endl;
     ?  }
     ? ?//if s<=400 ,just so so
     ? else ?if(score<=400){
    cout<<"your score is just so so!"<<endl;}
     ? ?else {
     ? ? ? ?cout<<"your score is so bad!"<<endl;
     ?  }
     ? ?system("pause");
     ? ?return 0;
    }

    运行效果如图:

     

    #include<iostream>
    using namespace std;
    int main(){
     ? ?//1、3 pigs,which is wet.
     ? ?int num1=0;
     ? ? int num2=0;
     ? ? int num3=0;
     ? ?//2、submit those wet
     ? ?cout<<"请输入小猪a的体重"<<endl;
     ? ?cin>>num1;
     ? ?cout<<"请输入小猪b的体重"<<endl;
     ? ?cin>>num2;
     ? ?cout<<"请输入小猪c的体重"<<endl;
     ? ?cin>>num3;
     ? ?cout<<"小猪a的体重:"<<num1<<endl;
     ? ?cout<<"小猪b的体重:"<<num2<<endl;
     ? ?cout<<"小猪c的体重:"<<num3<<endl;
     ? ?//3、compare
     ? ?//a:b
     ? ?if(num1>num2)//a比b重
     ?  {
     ? ? ? ?if(num1>num3) //a比c重
     ? ? ?  {
     ? ? ? ?cout<<"小猪a最重"<<endl;
     ? ? ?  }
     ? ? ? ?else //c比a重
     ? ? ?  {
     ? ? ? ? ? ?cout<<"小猪c最重"<<endl;
     ? ? ?  }
     ?  }
     ? ?else //b比a重
     ?  {
     ? ? ? ? if(num2>num3) //a比c重
     ? ? ?  {
     ? ? ? ?cout<<"小猪b最重"<<endl;
     ? ? ?  }
     ? ? ? ?else //c比b重
     ? ? ?  {
     ? ? ? ? ? ?cout<<"小猪c最重"<<endl;
     ? ? ?  }
     ?  }
     ? ?//
     ? ?system("pause");
     ? ?return 0;
    }

运行效果如图:

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使用的时机:

  • 出现switch条件语句中,作用是终止case并跳出switch

  • 出现在循环语句中,作用是跳出当前的循环语句

  • 出现在嵌套循环中,跳出最近的内层循环语句

    #include<iostream>
    ?
    using namespace std;
    int main(){
     ? ?//break的使用时机
     ? ?//1.出现switch条件语句中
     ? ?cout<<"请选择副本难度"<<endl;
     ? ?cout<<"1、普通"<<endl;
     ? ?cout<<"2、中等"<<endl;
     ? ?cout<<"3、困难"<<endl;
     ? ?int select =0;
     ? ?//创建选择结果的变量
     ? ?cin>>select;//等待用户输入
     ? ?switch(select)
     ?  {
     ? ? ? ?case 1: 
     ? ? ? ? ? ?cout<<"您选择的是普通难度"<<endl;
     ? ? ? ? ? ?break;
     ? ? ? ?case 2:
     ? ? ? ? ? ?cout<<"您选择的是中等难度"<<endl;
     ? ? ? ? ? ? break;
     ? ? ? ?case 3:
     ? ? ? ? ? ?cout<<"您选择的是困难难度"<<endl;
     ? ? ? ? ? ? break;
     ? ? ? ?default: break;
     ?  }
     ? ?//2。出现在循环语句中
     ? ?for (int i=0;i<10;i++)
     ?  {
     ? ? ? ?//如果i等于5,退出循环,不再打印
     ? ? ? ?if(i==5)
     ? ? ?  {
     ? ? ? ? ? ?break;//退出循环
     ? ? ?  }
     ? ? ? ?cout<<i<<endl;
     ?  }
     ? ?//3。出现在嵌套循环中
     ? ?for(int i=0 ; i<10;i++)
     ?  {
     ? ? ? ?for(int j=0;j<10;j++)
     ? ? ?  {
     ? ? ? ? ? ?if(j==5)
     ? ? ? ? ?  {
     ? ? ? ? ? ? ? ?break;//退出循环
     ? ? ? ? ?  }
     ? ? ?  }
     ?  }
     ? ?system("pause");
     ? ?return 0;
    }

    运行效果如图:

  • 4.3.2 continue语句

    作用:在==循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

  • 示例:

    #include<iostream>
    ?
    using namespace std;
    int main(){
     ? ?//continue语句
     ? ?for(int i=0; i<=100;i++)
     ?  {
     ? ? ? ?//如果是奇数输出,偶数不输出
     ? ? ? ?if(i%2==0)
     ? ? ?  {
     ? ? ? ? ? ?continue;//可以筛选条件,执行到此就不再向下执行,执行写一次循环
     ? ? ? ? ? ?//break会退出循环
     ? ? ?  }
     ? ? ? ?cout<<i<<" ";
     ?  }
     ? ?system("pause");
     ? ?return 0;
    }

运行效果如图:

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语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:27:40  更:2022-04-07 22:27:52 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码