再学C语言18:循环控制语句——while循环

news2024/7/6 18:56:15

3种基本的程序流:顺序、循环、分支

3种循环程序流:while、do while、for

伪代码(pseudocode):一种用简单的英语表示程序的方法,与计算机语言的形式相对应;伪代码有助于设计程序的逻辑

while循环的一般形式:

while(expression)
    statement

statement可以是一个带有分号的简单语句,也可以是花括号和其中的复合语句

如果expression为真(非零),就执行一次statement部分,然后再次判断expression,在expression变为假之前重复该判断和执行的循环,每次循环被称为一次迭代

一、while循环的终止

当构造一个while循环时,循环中必须包含能改变判断表达式的值使表达式的值最终为假,否则循环永远不会终止

例外:嵌入式开发中main函数中的while()循环实际上是一个死循环,是为了让程序一致运行而专门设计的

二、while循环何时终止

只有在计算判断条件的值时才决定是终止循环还是继续循环

示例代码:

#include <stdio.h>
int main(void)
{
    int num = 10;
    while(num < 11)
    {
        printf("the num is %d \n", num);
        num++; // num变为11,但是程序不会退出,而是继续执行完本次循环
        printf("the new num is %d \n", num);
    }
    return 0;
}

运行结果: 

94eb2d5dd56c452890e3f1ec611eb0ac.png

在循环中,即使进入循环的判断条件变得不满足,程序也不会马上退出,而是会执行完本次循环,在执行下一次判断时,才退出循环

三、while循环是使用入口条件的有条件循环

循环体中语句的执行需要依赖于判断表达式中的条件

在进入循环体之前必须满足该条件

只有位于判断条件之后的单个语句(简单语句或复合语句)才是循环的部分,不要忘了复合语句前后的花括号

while语句本身在语法上算作一个单独的语句,即使其使用了复合语句

常犯错误1:

#include<stdio.h>
int main(void)
{
    int i = 0;
    while(i < 10)
        function();
        i++; // 程序将一直在while循环中,永远不会执行到该行
    return 0;
}

常犯错误2:一个单独的分号也算是一个语句(空语句)

#include <stdio.h>
int main(void)
{
    int i = 0;
    while(i++ < 10); // 相当于循环内是空语句
        function(); // 该行语句只会被执行一次
    return 0;
}

为了防止空语句不被留意,建议放在单独的一行中,使开发者在阅读程序时更容易看到空语句:

while(i++ < 10)
    ; // null statement

当所有的工作都在判断过程中实现,会有意使用带有空语句的while语句,再比如:

// 只要scanf()读入一个整数,就返回1
// while中的判断条件满足,循环就会继续
while(scanf("%d", &num) == 1)
    ;

 

 

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

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

相关文章

Python语言快速入门下2

目录 一、前言 二、字符串 【字符串】 【字符串格式化】 【字符串常用方法】 1&#xff09;去掉空格和特殊字符 3&#xff09;字符串的测试和替换函数 4&#xff09;字符串的分割 5&#xff09;连接字符串 6&#xff09;截取字符串&#xff08;切片&#xff09; 7&a…

2022年「博客之星」,花落谁家? 大家来竞猜吧

一年一度的「博客之星」大赛如火如荼地进行着&#xff0c;大家都忙着评分、发帖、回帖.....今天发现我在分组的排名只有40多名&#xff0c;基本上算是放弃了。但是&#xff0c;看到本文的朋友&#xff0c;还是可以帮我拉拉票的&#xff01;请点开链接给个五星评分&#xff1a; …

Linux下安装Fastdfs

一、前期准备工作 1、需要提前下载的安装包&#xff1a; &#xff08;1&#xff09;libfatscommon-1.0.43&#xff1a;FastDFS分离出的一些公用函数包 &#xff08;2&#xff09;fastdfs-6.06&#xff1a;FastDFS本体包 &#xff08;3&#xff09;nginx&#xff1a;nginx-1.2…

服装行业进销存软件哪个好?

好用的进销存软件有以下评判标准&#xff1a; 1. 能否为企业带来效益。理清自身在进销存管理中的难点以及进销存软件需要具备的功能。 2. 是否简单实用&#xff0c;人员是否上手容易。选购软件不易太复杂&#xff0c;会给前期软件使用造成人力、物力等压力。 3. 进销存软件的…

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS(跨站脚本攻击)--过滤器实现

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS&#xff08;跨站脚本攻击&#xff09;--过滤器实现XSS介绍AntiSamy介绍AntiSamy使用pomUserUserControllerXssFilterXssRequestWrapper配置类XSS介绍 XSS&#xff1a;跨站脚本攻击(Cross Site Scripting)&#xff0c;为不和…

4、MYSQL常用函数(字符串)

目录 abs&#xff08;x&#xff09;&#xff1a;返回x的绝对值 ceil&#xff08;x&#xff09;&#xff1a;返回大于x的最小整数 floor&#xff08;x&#xff09;&#xff1a;返回小于x的最大整数 mod&#xff08;x,y&#xff09;&#xff1a;返回x/y的模 Rand&#xff08;&a…

分析激光焊接机焊接不牢固的原因

激光焊接机在焊接时为什么会出现焊接不牢固呢&#xff1f;是不是激光焊接设备出现问题了&#xff1f;当激光焊接机进行焊接加工时&#xff0c;出现材料之间的焊接不牢固这会影响整体质量。这时&#xff0c;用户不可避免地会质疑激光焊接机的效果我们也是可以理解的。实质出现激…

javaEE初阶---多线程(初阶)

一 : 学习目标 认识多线程掌握多线程程序的编写掌握多线程的状态掌握什么是线程不安全及解决思路掌握synchronized、volatile关键字 二 : 初识线程 2.1 线程概念 线程&#xff08;thread&#xff09;是操作系统能够进行运算调度的最小单位.它被包含在进程之中&#xff0c;是进…

django使用二——restful框架使用

背景 前言&#xff1a; 前篇django使用一&#xff0c;已将基本的项目、应用创建并运行&#xff1b;见&#xff1a;django使用一——规范化创建 本篇则针对ViewSet及rest_framework初使用做介绍&#xff1b; 闲笔&#xff1a; 两束平行宇宙射线射入黑盒&#xff0c;在人们充满…

《计算机网络》——第六章知识点

第六章思维导图如下&#xff1a; 应用层对应用程序的通信提供服务。 域名解析:根据域名找IP地址 域名结构 FTP是基于客户/服务器(C/S)的协议。 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务&#xff0c;进行文件传送的计算机就是FTP服…

对象类型的设计(简答题)

在实际项目开发中需要进行对象类型的设计&#xff0c;给你的问题是&#xff0c;在学生信息系统中需要你设计班级Classes类型和学生Student类型&#xff0c;为了便于数据的查询&#xff0c;需要建立对象之间的联系&#xff0c;比如一个班级有多个学生&#xff0c;每个学生属于一…

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式 Allegro可以显示PCB的3D效果,利于查看和检查,如下图 具体操作如下 选择Set-up-user preferences选择Display

游戏党别错过,提升FPS试试这样

如果你准备畅玩游戏&#xff0c;却频繁掉帧&#xff0c;严重影响游戏体验&#xff0c;那这里有些提升FPS的小方法&#xff0c;游戏党别错过了。 整理主硬盘更改电源选项更新显卡驱动降低屏幕分辨率关闭其他应用程序并禁用启动项 方法一、整理主硬盘 1、打开文件资源管理器&am…

APP Inventor练习——蓝牙通信

文章目录前言一、蓝牙调试1.组件设计2.逻辑设计二、蓝牙对战1.组件设计2.逻辑设计3.效果展示总结前言 练习APP Inventor中蓝牙的使用&#xff0c;并为之前的项目APP小游戏——一个都不能死增加了蓝牙对战功能。 一、蓝牙调试 先写一个蓝牙调试的APP&#xff0c;用来收发文本 …

2023年七大网络攻击手段预测

受疫情和网络攻击的加持下&#xff0c;2022年对网络安全领域的人来说并不是轻松的一年&#xff0c;一系列备受瞩目的网络攻击、数据泄露事件打的网安人手忙脚乱&#xff0c;供应链攻击、勒索软件攻击、业务欺诈、关键基础设施攻击、大规模数据泄露、地缘政治相关黑客攻击等网络…

热点舆情监测软件方法,舆情监测软件介绍,舆情软件监测意义?

热点舆情监测是指监测和分析当前热门话题或事件的舆情监测。这种监测可以帮助企业、政府机构或媒体机构了解公众对当前热门话题或事件的看法&#xff0c;接下来TOOM舆情监测小编简单介绍热点舆情监测软件方法&#xff0c;舆情监测软件介绍&#xff0c;舆情软件监测意义? 一、…

java8后接口的默认方法

这里我们先看一个案例 我们创建一个包 包下创建一个接口 testInterface 参考代码如下 public interface testInterface {void show(); }然后 我们创建一个类型 realizationMethod 来实现这个接口 并重写这个show方法 realizationMethod 参考代码如下 public class realizat…

腊八节吃什么What to eat on the Laba Festival

农历十二月初八是中国的传统节日——腊八节&#xff0c;腊代表中国农历的十二月&#xff0c;而八是eight的发音&#xff0c;因此&#xff0c;这个节日被翻译成腊八。 The Laba Festival is a traditional Chinese holiday celebrated on the eighth day of the twelfth month …

Selenium switch_to 处理多Web页签窗口与封装

目录 前言 脚本案例 未做页签切换处理的 做了页签切换处理的脚本 面签切换封装 1、按面签位置切换封装 2、按页签标题切换封装 3、两个封装的调用 前言 在做自动化测试时&#xff0c;经常会遇到一个链接&#xff0c;它会重新打开一个Web签&#xff0c;如下图的样式 如…

Tif地形数据下载CTB切片nginx发布及cesium调用

访问这个网站&#xff1a;https://urs.earthdata.nasa.gov/ 需要注册 选择数据类型如下 点击Search,可以看到很多搜索结果 点击下载一项tif 下载成功后&#xff0c;需要切片的话&#xff0c;可以选择两种方式 1CesiumLab3,如下图 可以选择多个tif&#xff0c;输出类型选择散…