理解编程中的while循环(C/C++)

2023-11-11

固定的语法结构

// 省略 include 和 using
int main() {
    printf("x");
}

我们写这个代码,打了一个int main(),然后打了一个大括号,为什么要这样做?

这个main() 是一个函数,但为什么一定要叫main,为什么又需要打(),又需要打{}

你暂时可以理解成这是约定俗成的事情,而且在这个情况下,它是强制要求的,没有必要深究原理。

while语法

相信你知道while的重要性,和for一起作为最常见的循环结构:

int main() {
    int x = 10;
    while(x > 5){
        cout << x;
        x--;
    }
    cout << "x最终是: " << x;
}

在这个地方,记住 cout << x 也是一个固定的语法结构,你不需要理解<<是什么东西,先知道这个东西写在这里,可以把<<后面的东西输出,即输出x的值到屏幕上,暂时这样做,不要去思考为什么写<<而不是其他的括号之类的东西,这涉及到运算符重载

首先你要记住一点,while这个语法结构是固定的,你必须要写成while(){}这样的格式(如果理解了C++中的代码块,你会发现{}不一定需要,暂时不要尝试!)

在这个基础上,我们来理解上面的代码:

  1. 有main(),有代码,那么程序生成了,开始运行

  1. 声明了一个变量 x = 10,x的类型是int整数

  1. 开始执行while结构

  1. 判断x>5是对的吗?如果不是,则跳过整个while语法块,转到第七行的cout<<"x最终...那里去,或者说这一坨while结束了,程序就往下走了;

  1. 如果x>5是对的,那么就运行while大括号里的这坨东西

  1. 括号里的东西运行完了,重新开始判断x>5是对的吗?判断完了,回到步骤a对的就继续,错的就结束while

尝试耐心地把自己模拟成计算机,开始执行这些代码:

  1. 你造了一个变量,x=10;

  1. 你进入while了

  1. 开始while判断,x=10所以x>5成立,执行cout<<x和x--

  1. 此时回到while判断,x=9所以x>5成立,执行cout<<x和x--

  1. 此时回到while判断,x=8所以x>5成立,执行cout<<x和x--

  1. 此时回到while判断,x=7所以x>5成立,执行cout<<x和x--

  1. 此时回到while判断,x=6所以x>5成立,执行cout<<x和x--

  1. 此时回到while判断,x=5所以x>5不成立了,程序继续,执行剩下的代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解编程中的while循环(C/C++) 的相关文章

随机推荐

  • docker在镜像和本地之间拷贝文件

    一 从容器里面拷文件到宿主机 docker cp b76a6e929470 home nacos conf Users king Desktop docker cp 容器ID 要拷贝的文件在容器中的位置 要拷贝到本地宿主机的位置 二 从宿主
  • error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘...

    解决 error 215 Assertion failed src empty in function cv cvtColor 报错如下 分析原因 解决方法 代码实现 报错如下 分析原因 可能是照片无效问题 即cv2 imread返回的值为
  • 常用linux命令

    1 创建文件目录 mkdir 2 创建文件 vi filename eg vi test txt 3 移动文件 mv source destination eg mv test txt study 重命名文件 mv test txt hel
  • VScode 黄色波浪线,Import “[module]“ could not be resolvedPylance

    文章目录 问题描述 解决方案 1 修改vscode的python环境 2 修改 vscode seteing json 文件 问题描述 大致的错误截图 第三方包 自己的代码库 导入不成功 显示黄色波浪线 代码自动提示功能受限 解决方案 可按
  • 斯坦福 机器学习-第二章 生成学习算法

    CS229 Lecture notes 原作者 Andrew Ng 吴恩达 翻译 CycleUser Part IV 生成学习算法 Generative Learning algorithms 目前为止 我们讲过的学习算法的模型都是p y
  • java--基础--17.1--线程--实现多线程,线程方法

    java 基础 17 1 线程 实现多线程 线程方法 1 概念 进程 正在运行的程序 每个进程可以由多个线程组成 线程 是进程中的单个顺序控制流 是一条执行路径 并行 指在某一个时间点执行多个任务 并发 指在某一个时间段执行多个任务 2 实
  • 【Android】App开发-动画效果篇

    在我们玩手机的过程中 如果我们点击某一个页面时 会出现一个页面动画加载或者动画效果的现象 现在我们就来看看App开发中是如何实现动画效果的 目录 动画的分类 逐帧动画 补间动画 动画的分类 在常见的app使用的动画中 常见的就是逐帧动画 补
  • confluence安装

    注 安装前确保机器已安装docker 1 执行如下命令一键安装wiki mkdir p data cd data wget http apk lingyun5 com confluence wiki tar gz tar zxvf conf
  • 学习sql,你需要知道这些

    这里写目录标题 数据库的分类 开发式数据库 非开发式数据库 事务 什么是事务 事务的四种特性 死锁 什么是死锁 死锁的四个条件 如何处理死锁 预防死锁 避免死锁 检测死锁 解除死锁 什么是navicat SQL语句 对数据库的操作 对表的操
  • 数字图像处理:使用直方图统计进行图像增强

    一 引言 在 数字图像处理 局部直方图处理 Local Histogram Processing https blog csdn net LaoYuanPython article details 120383974 介绍了基于像素的邻域进
  • 工具类之FastDFSClient

    import org csource common MyException import org csource common NameValuePair import org csource fastdfs import org spri
  • 【GRU时序预测】基于贝叶斯网络优化卷积神经网络结合门控循环单元BO-CNN-GRU实现数据股价预测附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • c语言 --- 指针

    什么是指针 指针就是一个地址 在c语言中任何东西都是有地址的 如何获取地址 用的是 取地址符 指针就是一个整数 获取指针 定义变量时 可以通过取地址符 得到当前变量的地址 gt 一个房间对应一个房间号 地址类比于房间号 所有的指针类型都是
  • jpa 动态参数查询 高级查询

    GetMapping find ApiOperation 通用查询 ScSecurityPermission name 通用查询 public ScResult find FileInfo fileInfo RequestParam nam
  • JS获取json子项/数组的个数/长度

    JS获取json子项 数组的个数 长度 微信小程序获取json格式数据的个数 长度
  • java 请求参数加解密

    项目开发中 需要针对请求参数加密 解密操作 可以使用下列工具类 oap security enabled true oap security enableIgnoreAnnotation true oap security secretKe
  • [4G/5G/6G专题基础-158]: 5G VoNR(Voice over NR)与VoLTE共同组成5G三大语音方案

    目录 第1章 语音方案概述 1 1 VoLTE概述 1 2 5G VoNR概述 第2章 5G VoNR网络架构 2 1 基本原则 2 2 NSA VoLTE方案 2 3 SA EPS Fallback SA组网 早期方案 2 4 SA Vo
  • 对于售点POI标签计算脚本优化总结

    对于售点POI标签计算脚本性能优化总结 减少udf 函数的使用多多使用spark的算子 对于两组经纬度的距离计算可以使用常规的公式计算法 Haversine 公式是一种用于计算两个球面坐标点 经度和纬度 之间的距离的公式 它的原理是基于球面
  • netpoll浅析

    netpoll只是一种框架和一些接口 只有依赖这个框架和接口实现的netpoll实例 netpoll才能发挥它的功能 类似于kernel中的vfs vfs本身并不会去做具体的文件操作 只是为不同的文件系统提供了一个框架 netpoll不依赖
  • 理解编程中的while循环(C/C++)

    固定的语法结构 省略 include 和 using int main printf x 我们写这个代码 打了一个int main 然后打了一个大括号 为什么要这样做 这个main 是一个函数 但为什么一定要叫main 为什么又需要打 又需