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

2023-12-30 04:36

本文主要是介绍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还没来得及输出,循环就直接被跳出去了。


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

这个时候就需要用到一条新的语句了: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

这篇关于C语言中关于while语句的理解以及getchar和putchar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/551722

相关文章

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个