什么是C语言的while语句?它的作用是什么呢?估计很多初学者对此都是一知半解。下面课课家笔者就为大家详细解释C语言中的while语句的含义和作用。

首先笔者先给大家介绍C语言中的共有的三大常用的程序结构:

①顺序结构:代码从前往后执行,没有任何“拐弯抹角”;

②选择结构:也叫分支结构,重点要掌握if else、switch以及条件运算符;

③循环结构:重复执行同一段代码。

在这里笔者重点给大家介绍循环结构,所谓循环(Loop),就是重复地执行同一段代码,比如要计算1+2+3+……+99+100的值,我们就要重复进行99次加法运算。下面是while循环的结构代码:

◎while循环

while循环的一般形式为:

while(表达式){

语句块

}

以上结构代码的具体意思是,先计算“表达式”的值,当值为真(非0)时,执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行while后面的代码。我们通常将“表达式”称为循环条件,把“语句块”称为循环体,整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。下面笔者用while循环计算1加到100的值:

#include

int main(){

int i = 1, sum = 0;

while(i<=100){

sum+=i;

i++;

}

printf("%d\n",sum);

return 0;

}

运行结果:

5050

代码分析:

①程序运行到while时,因为i=1,i<=100成立,所以会执行循环体;执行结束后i的值变为2,sum的值变为1。

②接下来会继续判断i<=100是否成立,因为此时i=2,i<=100成立,所以继续执行循环体;执行结束后i的值变为3,sum的值变为3。

③重复执行步骤2。

④当循环进行到第100次,i的值变为101,sum的值变为5050;因为此时i<=100不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码。

简单来说while循环的整体思路是这样的:设置一个带有变量的循环条件,也即一个带有变量的表达式;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,整个循环就结束了。到这里估计有同学会问如果循环条件中不包含变量会怎样,不用担心下面笔者就此问题进行举例分析。

①循环条件成立时的话,while循环会一直执行下去成为“死循环”。比如:

#include

int main(){

while(1){

printf("1");

}

return 0;

}

此时我们运行程序会不停地输出“1”,直到我们强制关闭。

②循环条件不成立的话,while循环就一次也不会执行。比如:

#include

int main(){

while(0){

printf("1");

}

return 0;

}

此时我们运行程序什么也不会输出。

接下来我们再举一个例子,统计从键盘输入的一行字符的个数:

#include

int main(){

int n = 0;

printf("Inputastring:");

while(getchar()!='\n')n++;

printf("Numberofcharacters:%d\n",n);

return 0;

}

运行结果:

Input a string:www.kokojia.com↙

Number of characters:15

本例程序中的循环条件为getchar()!='\ n',其意义是,只要从键盘输入的字符不是回车就继续循环。循环体n++;完成对输入字符个数计数。

◎do-while循环

除了while循环,在C语言中还有一种do-while循环。do-while循环的一般形式为:

do{

语句块

}while(表达式);

do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次“语句块”。下面笔者用do-while计算1加到100的值:

#include

int main(){

int i = 1, sum = 0;

do{

sum+=i;

i++;

}while(i<=100);

printf("%d\n",sum);

return 0;

}

运行结果:

5050

注意while(i<=100);最后的分号;,这个符号必须要有。最后给大家放个while语句加深记忆(图1)。

图1

本次详解C语言中的while语句的教程到此暂告一段落,以后如果有补充的话笔者会继续在此补充,希望这个教程对大家学习C语言能起到一定的帮助作用!

c语言while函数作用,详解C语言中的while语句相关推荐

  1. c语言fclose函数作用,详解C语言中freopen()函数和fclose()函数的用法

    C语言freopen()函数:打开文件函数,并获得文件句柄 头文件: #include 定义函数: FILE * freopen(const char * path,const char * mode ...

  2. c语言rand函数的作用,详解C语言中rand函数的使用

    前言 我们在编程实现算法的过程中,往往需要使用到随机数.由于计算机是一台以逻辑为基础的机器,没法做到真正的随机(大概量子计算机可以?).所以计算机生成的是伪随机数,供我们使用. 我们使用C语言的ran ...

  3. 详解C语言中的switch语句

    文章目录 switch语句格式 条件合并的写法 break语句 default语句 switch语句与if..else语句区别 switch语句格式 switch(表达式) {case 常量表达式1: ...

  4. c语言 is函数,关于C语言回调函数的详解~

    原标题:关于C语言回调函数的详解~ 01 什么是回调函数? 回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义.我在百度上搜了一下, ...

  5. php seekdir,C++_详解C语言中telldir()函数和seekdir()函数的用法,C语言telldir()函数:取得目录流 - phpStudy...

    详解C语言中telldir()函数和seekdir()函数的用法 C语言telldir()函数:取得目录流的读取位置头文件: #include 定义函数: off_t telldir(DIR *dir ...

  6. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  7. C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...

    详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...

  8. c语言中的fscanf是啥意思,详解C语言中fgets和fscanf区别

    fscanf函数是C语言的文件格式读取函数的方法之一,它使用空格.制表符和回车来分割不同的单词,这样可以让我们使用起来更方便,下面就让爱站技术频道小编带你来学习详解C语言中fgets和fscanf区别 ...

  9. goto在c语言中的作用,为什么在C语言中,goto这么不受待见?

    原标题:为什么在C语言中,goto这么不受待见? 什么是goto语句 goto语句被称为C语言中的跳转语句.用于无条件跳转到其他标签.它将控制权转移到程序的其他部分. goto语句一般很少使用,因为它 ...

最新文章

  1. 在UE4中创建CG动画 How to create a movie in Unreal Engine 4 using Metahuman
  2. iframe内容 固定比例_允知研习|浅析固定总价合同的结算问题
  3. java的this_java的this是什么意思
  4. python 循环语句结果存储_Python条件语句和循环语句
  5. SQL Server 跨库查询
  6. linux compress参数,compress命令_Linux compress 命令用法详解:使用Lempress-Ziv编码压缩数据文件...
  7. integer是值传递还是引用传递_值传递与引用传递
  8. python多线程实现方法_Python3 多线程的两种实现方式
  9. Linux / Unix Command: getprotobyname
  10. python时间序列画图plot总结
  11. python制作系统监控_用python做一个系统监控程序
  12. 汇编语言学习笔记(【汇编语言】小甲鱼零基础汇编)
  13. 还在低头采石油? BP、壳牌、道达尔、中石化早已涌入可再生能源
  14. 电气工程类中文核心期刊
  15. “海选优品,泉网打尽”胡海泉抖音直播带货首秀告捷 柏厨集成家居塔奇、I-LOFT惊艳亮相
  16. 中小微企业财务报表三剑客之资产负债表
  17. 微信社群运营是什么,如何做好社群运营?
  18. 【线性代数笔记】正定矩阵及其性质
  19. Html Table 表格 画斜线
  20. Three.js 3D 动画场景搭建

热门文章

  1. 计算5个学生的java考试平均分
  2. Altium Designer(AD)软件使用记录08-PCB布局部分
  3. Linux RedHat7 安装oracle
  4. 星戈瑞-脂溶性CY3-MAL的作用及注意事项
  5. Linux命令·ps
  6. 前端岗位初入职场后的最初一段时间需要做什么
  7. 最小二乘法拟合圆心公式推导及基于opencv的程序实现
  8. 微型计算机2019年4月,2019年4月有几个工作日 4月份休息几天
  9. linux使用keytool生成证书库,使用JDK自带的keytool工具生成证书
  10. 全国各大城市的经纬度表,留着以后做查询库用