C语言中关于while语句的理解以及getchar和putchar

 while是一个循环语句,关于while的一些理解可以看下面这串代码

#include <stdio.h>
int main() {int i = 0;scanf("%d", &i);printf("输入十以内的数字,从输入的数字开始一直数到十:");while (i<=10){printf("%d ",i);i++;}return 0;
}
例如我们输入一个7
i=77<=10成立,输出7,i+1变成8
i=88<=10成立,输出8,i+1变成9
i=99<=10成立,输出9,i+1变成10
i=1010<=10成立,输出10,i+1变成11
i=11,i<=10不成立,跳出while循环

这就是while语句基本的运行方式


 在此基础上,我们来改进一下这个语句,现在我们想让它运行到9的时候就跳出去该怎么办呢?

while (i <= 10){if(i == 9)break;printf("%d ",i);i++;}

我们可以在while里面加上一个if(i==9)break;的条件,加上之后当i=9时再运行就会因为if中的条件直接跳出循环,所以可以看见,这串代码在输出的时候是没有输出9的,因为9还没来得及输出,循环就直接被跳出去了。


我们再次改进这条语句,要在输入后跳过9,然后继续输出后面的数应该怎么办呢?

这个时候就需要用到一条新的语句了:continue 

continue:跳过本次continue循环后面的代码,重新去判断部分(也就是重新进入while循环),看是否能够进行下一次循环

while (i < 10){i++;if(i == 9)continue;printf("%d ",i);}

 这串代码与上一次相比,我们把while中的条件改为了i<10而非i<=10,然后还把i++提前了

值得注意的是,如果我们这里不把i++提前而是继续放到printf后面,那么在i=9时,continue直接跳过i++然后回到while当中,这就会导致i一直等于9,造成死循环


 那么我们再来看一个while语句

看之前先介绍一下getchar和putchar还有EOF

getchar:获取一个字符

putchar:输出一个字符

EOF:文件结束标志

#include <stdio.h>
int main() {int i ;while ((i=getchar()) != EOF)    //如果i一个输出的字符且这个输出的字符不等于EOFputchar(i);                 //就输出这个ireturn 0;
}

因为我们要先判断i=getchar(),所以我们要用括号把i=getchar()括起来

这段代码的作用是你输入一个字符进去,系统就会返回这个字符给你,可以不断的去读取一个字符

如果我们要结束这个程序,就用ctrl+z就行了,ctrl+z的功能就是让getchar读取到一个EOF

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php ext-sodium 拓展安装 linux+windows

php编译安装(linux)&#xff0c;可以参考&#xff1a;php编译安装 一、windows soduim源码包自带&#xff0c;直接修改php.ini&#xff0c;取消extensionsodium注释即可 二、linux 1.安装依赖 apt-get install libsodium-dev2.进入源码目录 这里写自己的源码目录 cd /us…

6种版本的并查集(java实现版)

目录 引入 并查集的具体讲解及代码实现 Quick Find Quick Union 基于size的优化 代码实现 基于rank的优化 代码实现 路径压缩 代码实现 更多关于路径压缩的并查集 引入 由孩子指向父亲的这种特殊的树结构可以很高效的处理连接问题&#xff0c;在一个复杂的图中&…

音视频技术开发周刊 | 326

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 全球最强「开源版Gemini」诞生&#xff01;全能多模态模型Emu2登热榜&#xff0c;多项任务刷新SOTA 最强的全能多模态模型来了&#xff01;就在近日&#xff0c;智源研究院…

使用echarts的bmap配置项绘制区域轮廓遮罩

示例图 代码 <template><div id"map" style"width: 100%; height: 100vh"></div> </template><script> import * as echarts from "echarts"; import "echarts/extension/bmap/bmap"; export default…

C++笔试在一个字符串中找到第一个只出现一次的字符,要求时间复杂度O(n)

要在一个字符串中找到第一个只出现一次的字符&#xff0c;并且要求时间复杂度为O(n)&#xff0c;可以使用哈希表来解决。具体思路如下&#xff1a; 1、创建一个哈希表&#xff0c;用于记录每个字符出现的次数。 2、第一次遍历字符串&#xff0c;将每个字符及其出现的次数存储到…

vue-amap在vue中引入方式

1.安装 vue-amap 插件。你可以通过在终端中运行以下命令来安装&#xff1a; npm install vue-amap --save2.在main.js文件中引入 vue-amap 并初始化高德地图&#xff1a; import Vue from vue; import VueAMap from vue-amap;Vue.use(VueAMap); VueAMap.initAMapApiLoader({k…

华为交换机入门(六):VLAN的配置

VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信&#xff0c;而VLAN间不能直接互通&#xff0c;从而将广播报文限制在一个VLAN内。 VLAN 主要用来解决如何…

【node.js】使用nvm切换node环境

使用 nvm 切换 Node.js 版本的步骤如下&#xff1a; 一、安装步骤 安装之前卸载node.js 一定要把原先的node.js卸载掉&#xff0c;使用控制面板卸载或者找到相应文件删掉。删完之后检查最好一遍。详情见【node.js】如何确保node.js卸载干净。 安装 nvm&#xff1a; 如果你还没…

企业工商信息数据哪里获取?工商全量信息有什么渠道?

随着互联网的发展和普及&#xff0c;越来越多的企业选择在网上进行业务推广和品牌宣传。对于一些想要了解企业工商信息的用户来说&#xff0c;如何获取企业工商信息数据成了一个非常重要的问题。下面分享获取企业工商全量信息的渠道和方式&#xff1a; 首先&#xff0c;我们可以…

浏览器---善用的一些调试技巧

https://www.cnblogs.com/dasusu/p/17932742.html

用《Object-Occluded Human Shape and Pose Estimation from a Single Color Image》代码

https://gitee.com/seuvcl/CVPR2020-OOH 极简 注意事项&#xff1a; 把basicmodel_neutral_lbs_10_207_0_v1.1.0.pkl下下来改名SMPL_NEUTRAL.pkl后放进data。不能直接用smplx的&#xff0c;里面数据结构不太兼容目前代码只支持输入图片的文件夹&#xff0c;急着用所以就视频单…

使用bpftrace+GDB尽早attach启动时间不定的进程

引言 曾经在stackoverflow看到过一篇求助帖子《Is there any way to tell GDB to wait for a process to start and attach to it?》,大体问题:工具链上调用关系很长,父进程调用子进程,子进程调用孙进程,如此下去,最后有一个进程崩溃了,提问者期望在崩溃之前用GDB att…

C++的魅力与奥秘:工作原理、特性及应用深度解析---探索其发展历程与运行机制

一、引言 C是一种功能强大的编程语言&#xff0c;它的诞生和发展历程与计算机科学的飞速进步密不可分。作为C语言的扩展&#xff0c;C不仅保留了C语言的高效性能&#xff0c;而且引入了面向对象编程的概念&#xff0c;为程序员提供了更丰富的工具和更高效的开发方式。面向对象编…

记一次Oracle Cloud计算实例ssh恢复过程

#ssh秘钥丢失# &#xff0c; #Oracle Cloud# 。 电脑上的ssh秘钥文件不知道什么时候丢失了&#xff0c;直到用的时候才发现没有了&#xff0c;这下可好&#xff0c;Oracle Cloud的计算实例连不上了&#xff0c;这个实例只能通过ssh连接上去&#xff1a; 以下是解决步骤&#x…

Superset二次开发之部署问题汇总(持续更新ing)

1.ERROR: Could not build wheels for python-geohash, which is required to install pyproject.toml-based projects # 缺少 geohash whl 文件, 下载地址 www.lfd.uci.edu/~gohlke/pythonlibs/ pip install geohash文件路径 2. AttributeError: module sqlparse.keywords has…

如何在 VeriStand 中设置反射内存通道--5565PIORC

环境 硬件 cPCI-5565PIORC 软件 VeriStand 我正在设置我的反射内存 PXI 卡&#xff08;例如 cPCI-5565PIORC&#xff09;。 我可以在我的 PXI 系统之间使用反射内存发送/接收什么&#xff1f; 如何设置我的 PXI 系统之间共享的通道&#xff1f; 使用反射内存&#xff0c;您可…

梯度下降算法 寻找函数最小值 找最快下山路线 python写个梯度下降算法示例

梯度下降算法是一种用于寻找函数最小值的优化算法。 它在机器学习和深度学习中被广泛使用&#xff0c;特别是在训练神经网络时。我们可以通过一个简单的生活中的例子来理解它&#xff1a; 想象你在一座山上&#xff0c;需要找到最快的路线下山。你不能一眼看到最低点&#xf…

【深度学习下载大型数据集】快速下载谷歌云盘数据集

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 跑深度学习的时候,一些数据集比较大,比如60多个G,而且只是训练集. 然后这些数据是由某些实验室组采集的,并不像一些大公司搞的,一般都直接方法一些网盘中. 如果是谷歌网盘,本身通过代理也不麻烦,但是发现即使通过代…

计算机毕业设计——SpringBoot社区物业管理系统(附源码)

1&#xff0c; 概述 1.1 课题背景 近几年来&#xff0c;随着物业相关的各种信息越来越多&#xff0c;比如报修维修、缴费、车位、访客等信息&#xff0c;对物业管理方面的需求越来越高&#xff0c;我们在工作中越来越多方面需要利用网页端管理系统来进行管理&#xff0c;我们…

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 &#x1f4dd; 摘要&#xff1a; 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具&#xff0c;我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…