在第一章中我们已经简单学习了关于使用while语句来实现循环的操作,现在我们来详细讲述关于while语句的循环方式和do while语句的循环方式。

一、whlie循环

while循环语句是C语言中最基本的循环方式,它的语法结构如下:

while (条件表达)
{
        //循环体
}

while是C语言的一个关键字,其后是使用一个小括号中的条件表达式来做为执行循环的条件,也就是说当条件表达式的结果为真时执行大括号里面的的程序内容,而当条件表达式的结果为假时不执行大括号中的内容。其实这与if语句的语法有些类似,当条件表达式为真时if后的执行程序只执行一次,而while则会循环执行下去,直到条件表达式的结果为假时结束。

我们来看一个关于whlie循环的简单例子,显示1到31天的日期:

int day = 1;
while (day <= 31)
{printf("%d\n", day);day++;
}

这个程序中while语句的条件表达式为day <= 31也就是说当day的值小于等于31时,程序会循环执行大括号中的内容(循环体),循环体中有两条语句,第一条语句是执行一个标准输出,显示day的值,而第二条语句day++;非常重要,它表示将day的值在原来的基础上加一,当这条语句执行后,程序又将回到条件表达中进行真假判断,如果为真则继续循环,如果为假则结束循环。
例如在开始while语句时,day的值为1所以day <= 31的结果为真,于是进入第一次循环,显示day的值1,并将day的值加1;程序再次进入条件判断,day的值为2,所以day <= 31的结果为真,进入第二次循环,显示2,并将day的值加1;程序再次进入条件判断...如此重复执行31次,day的值为32,程序再次进入我条件判断,day <= 31的值为假,于是不再进入循环体,while循环语句结束。

二、do while语句

与while类似,do while语句也同样是用于完成程序循环的一种方式,它的基本用法如下:

do
{
        //循环体
}
while (条件表达式);

大家可以注意到do while语法与while有一些类似,也有一些不同,类似的地方是它同样有循环体和条件表达式,但执行顺序与while不同,do while是先执行一次循环体之后再进行条件判断。

注意,在do while语句的条件判断后要加上一个分号;表示语句的结束。我们还是用显示31天的例子来学习这个语法:

int day = 1;
do
{printf("%d\n", day);day++;
}
while (day <= 31);

程序在执行的过程为:首先进入第一次循环显示1并将day的值加1,然后做条件判断day有值为2,于是day <= 31的结果为真,返回到do后面的循环体进入下一次循环...直到day的值为31时,printf显示出31,然后day的值加1,然后做条件判断,day的值为32,于是day <= 31的结果为假,结束循环。

三、细微差别

接下来我们来看一看关于while语句和do while语句的细微差别。do while语句在在执行时无论条件表达式的结果是真还是假,都会执行一次循环体,然后再进行条件判断。例如我们分别写这样两段程序,它们的执行结果是不一样的,请读者自己体会这两种循环的差别,并自己动手编写程序。

使用while执行循环:

int i = 0;
while (i < 0)
{i++;printf("%d\n", i);
}

执行0次循环,没有运行结果;

使用do while执行循环:

int i = 0;
do
{i++;printf("%d\n", i);
}
while (i < 0);

执行1次循环,运行结果为0。

欢迎关注公众号:编程外星人

C语言基础:while与do while相关推荐

  1. 【python语言基础】疑难点整理2

    [python语言基础]疑难点整理1 第五章 在python语法中,循环体中的语句没有做限制,因此,可以是任何合法语句,当然也可以是循环语句.这样就形成了循环语句的嵌套. while循环语句和for循 ...

  2. r语言 断轴 画图_R语言基础画图/绘图/作图

    R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...

  3. fig r函数_R语言基础绘图函数散点图~跟着Nature Communications学画图~Figure1

    今天继续 跟着Nature Communications学画图系列第二篇.学习R语言基础绘图函数画散点图. 对应的 Nature Communications 的论文是 Fecal pollution ...

  4. 学单片机需要多少C语言基础,C语言单片机编程教程

    很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...

  5. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  6. c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析

    本文约1600字,主要讲了C语言基础之数组.数组又可分为数值数组.字符数组.指针数组.结构数组等各种类别.本文主要讲了数组的基础概念,一维数组的定义和引用. 带你进入C语言的世界,入门C语言,后边将持 ...

  7. matlab语言实验二,实验二 MATLAB语言基础

    实验二 MATLAB 语言基础 一.实验目的 基本掌握 MATLAB 向量.矩阵.数组的生成及其基本运算(区分数组运算和矩阵运算).常用的数学函数.了解字符串的操作. 二.实验内容 (1) 向量的生成 ...

  8. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  9. 实验四 数据库SQL语言基础编程

    -- 实验四 数据库SQL语言基础编程 -- 实验目的: --  掌握数据库查询语句的编写方法 --  掌握利用查询语言完成基本查询 --  掌握利用SQL语句完成数据的添加.删除.修改操作 -- 实 ...

  10. 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)

    来源:大数据 本文约7100字,建议阅读15分钟. 本文介绍了utils包在R语言基础的用途. [ 导读 ]无论数据分析的目的是什么,将数据导入R中的过程都是不可或缺的.毕竟巧妇难为无米之炊.util ...

最新文章

  1. 如何通过DICOM的tag来判断3D图像的方向
  2. vim比vi做的一些改进
  3. 分布式认证方案-基于session的认证方式
  4. 使用application log 分析navigation target解析错误
  5. java传值和通过引用传递
  6. 关于argc和argv的输出
  7. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用
  8. 难道网上就没有真正完全无误的Postfix教程了吗?
  9. java 预览图片_jquery实现图片预览的方法
  10. mysql关闭显示无权限_如何关闭mysql远程登录权限
  11. Qt总结之八:绘制仪表盘
  12. 手写SpringIOC注解版本
  13. 以太网交换机erps学习记录
  14. 乌班图 修改ip_Ubuntu配置和修改IP地址
  15. [ 笔记 ] 计算机网络安全_4_网络扫描和网络监听
  16. crash report for adobe photoshop cc 2019
  17. php 文字水印换行,thinkPHP5图片加文字水印实现换行的方法
  18. android教案,android教学教案.doc
  19. kill命令详解kill -9、kill -15区别
  20. latex缩进与对齐_latex 换行后缩进

热门文章

  1. WordPress建站8款插件Niche站必备
  2. 【Java二十周年】爱上Java无法自拔
  3. 2020CSP复赛赛试题答案
  4. 恢复桌面上的IE图标,并非快捷方式
  5. 汇通达打响农村电商上市第一枪
  6. iMeta | 厦门大学马永慧组探究捐菌者对肠菌移植的伦理认知和态度
  7. mybaits 中的配置,应和查询到的参数 一一对应,才可以映射到pojo类中
  8. 新买的硬盘如何分区?
  9. 民营企业管理现状:不改革十分危险
  10. 数据库-多步操作产生错误,请检查每一步的状态值