在C语言中,共有三大常用的程序结构:

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

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

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

前面讲解了顺序结构和选择结构,本节开始讲解循环结构。所谓循环(Loop),就是重复地执行同一段代码,例如要计算 1+2+3+……+99+100 的值,就要重复进行99次加法运算。

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

代码分析:

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

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

3) 重复执行步骤 2)。

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

while 循环的整体思路是这样的:设置一个带有变量的循环条件,也即一个带有变量的表达式;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,整个循环就结束了。

如果循环条件中不包含变量,会发生什么情况呢?

1) 循环条件成立时的话,while 循环会一直执行下去,永不结束,成为“死循环”。例如:

#include

int main(){

while(1){

printf("1");

}

return 0;

}

运行程序,会不停地输出“1”,直到用户强制关闭。

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

#include

int main(){

while(0){

printf("1");

}

return 0;

}

运行程序,什么也不会输出。

再看一个例子,统计从键盘输入的一行字符的个数:

#include

int main(){

int n=0;

printf("Input a string:");

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

printf("Number of characters: %d\n", n);

return 0;

}

运行结果:

Input a string:c.biancheng.net↙

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循环和do-while各有特点,大家可以适当选择,实际编程中使用while循环较多。

&lbrack;SQL&rsqb;SQL语言入门级教材&lowbar;SQL语言基本语句介绍(四)

SQL语言基本语句介绍 • 表的建立 关系数据库的主要特点之一就是用表的方式组织数据.表是SQL语言存放数据.查找数据以及更新数据的基本数据结构.在SQL语言中,表有严格的定义,它是一种二维表,对于这 ...

php入门 数据类型 运算符 语言结构语句 函数 类与面向对象

php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...

OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-wh ...

零基础逆向工程12&lowbar;C语言06&lowbar;switch语句反汇编

12_C语言06_switch语句反汇编 switch语句反汇编 测试环境:VC++6.0 分支少于4的时候没有意义,编译器会生成类似if...else之类的反汇编,不超过三个分支,不会生成索引表. ...

R语言Switch语句

R语言Switch语句 switch语句允许一个变量值的列表来平等进行测试.每个值被称为一个条件(情况),变量被接通检查每个条件(情况). 语法 在R语言中创建switch语句的基本语法是: 以下规则 ...

C语言中语句的跨行支持总结

C语言中语句的跨行支持总结: 预处理一行写不下: 把一个预处理指示写成多行要用""续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成. 正常程序一行写不下: 把C代码写成多 ...

go语言循环语句 for

Go语言中的循环语句只支持for关键字,而不支持while和do-while结构. sum := 0 for i := 0; i < 10; i++ { sum += i } 无限循环的写法: ...

go语言选择语句 switch case

根据传入条件的不同,选择语句会执行不同的语句.下面的例子根据传入的整型变量i的不同而打印不同的内容: switch i { case 0: fmt.Printf("0") case ...

(旧)子数涵数&&num;183&semi;C语言——条件语句

首先,我们讲一下理论知识,在编程中有三种结构,分别是顺序结构.条件结构.循环结构,如果用流程图来表示的话就是: 那么在C语言中,如何灵活运用这三种结构呢?这就需要用到控制语句了. 而条件语句便是控制语 ...

Go 语言 goto 语句

Go 语言的 goto 语句可以无条件地转移到过程中指定的行. goto语句通常与条件语句配合使用.可用来实现条件转移, 构成循环,跳出循环体等功能. 但是,在结构化程序设计中一般不主张使用goto语 ...

随机推荐

回忆那些我们曾今铭记过的&period;NET重点知识

正如标题所说的那样,到底是那些.NET的知识点呢?     接下来就让我带着你们去了解这些知识点吧! 1.接口 2.索引器 3.FOREACH的本质 4.匿名内部类 5.运算符的重载 一.什么是接口? ...

4&period;Struts2转向类型详解

struts2中提供了多种视图转向类型,类型由type属性指定,如: dispatcher:请求转发(默认值) redirect:重定向到页面 redirectAction:重定向到Action pl ...

C&num;交错数组

交错数组本质上是一维数组只不过这个一维数组里的元素都是数组.因为该一维数组里面的元素可以是任何大小的数组所以定义时只能以这样的格式定义 ][]; 定义完后必须对该数组进行初始化后方可进行赋值等操作否则 ...

float类型转对象 对象转float类型(一)

//float类型转化为对象CGFloat fValue = 1.f;NSNumber *objNo = [NSNumber numberWithFloat:fValue];数值.BOOL型都可以转成 ...

&lbrack;AaronYang&rsqb;C&num;人爱学不学&lbrack;7&rsqb;

做一个决定,并不难,难的是付诸行动,并且坚持到底 --Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 委托-我的总结 1.1 委托:面试我都会说,把方法当参数.委托包 ...

EL表达式介绍

EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

&period;NETCore 快速开发做一个简易商城

介绍 上一篇介绍 <.netcore dbfirst>,讲得不太清楚有些多人没看懂.这次吸取教训,将一个简易商城做为案例,现实快速开发. 本案例用于演示或学习,不具 ...

&lbrack;Swift&rsqb;LeetCode506&period; 相对名次 &vert; Relative Ranks

Given scores of N athletes, find their relative ranks and the people with the top three highest scor ...

cd4与cd8比值的意义

正常情况下CD4/CD8比值介于1.5—2.5之间,如CD4是每微升血750个,CD8是每微升血460个,这样两者的比值就是1.63. 虽然95%的正常人CD4/CD8的比值都在1以上,但是也有一些正 ...

c语言while语句写法,C语言while语句相关推荐

  1. c语言的malloc写法,C语言malloc用法

    #include #include int main() { int *pi; pi=malloc(100); if(pi==NULL){ printf("Error! Out of mem ...

  2. datatable中使用linq的条件或_C# 10. LINQ 的三种查询语句写法

    前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命名空间中使用.LINQ 为我们提供了通用的查 ...

  3. linq拼接where语句_C# 10. LINQ 的三种查询语句写法

    C# 10. LINQ 的三种查询语句写法 前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命 ...

  4. c语言中编程中跳格的写法是,c语言中现代写法,用C语言编程中,一般的格式是怎样的?...

    C语言源程序的编程格式归纳如下: 1,强制性规则 1,一个C语言源程序必须有且只有一个MAIN函数. 2,函数名后必须紧跟圆括号对,函数体放在右圆括号")"后的花括号对" ...

  5. 51c语言字符,51单片机C语言教程(九) 语句应用

    曾经在BBS上有朋友问过我{}是什么意思?什么作用?在C中是有不少的括号,如{},[],()等,确实会让一些初入门的朋友不解.在VB等一些语言中同一个()号会有不同的作用,它可以用于组合若干条语句形成 ...

  6. matlab for判断语句,matlab使用笔记(一)——matlab语言中if、for语句与C语言中的差别...

    好久没用matlab编写程序,上周在亲导师面前,愣生生是2小时没编出一选择函数的程序.羞愧至极,愤而写之.主要内容是matlab语言中与c语言中if.for语句的差别. 突然插一下!!!end.end ...

  7. C语言多case自动跳出,C语言switch中case后跟随break语句

    1.case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即"只是开始执行处的入口标号". 因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行: ...

  8. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

  9. R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句

    R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录

最新文章

  1. mysql 5.5半同步复制功能部署
  2. 如何使用ASINetWorkQueue下载实现
  3. 招聘行业颠覆者【伯小乐】| 手摸手产品研究院
  4. [转][3DSMAX][贴图]如何检查遗失贴图
  5. 当c语言老师遇到网络崩溃,网络教学搞不定?工科教授来支招!
  6. 神经网络与推荐系统初步简介
  7. excel打印预览在哪里_别再浪费A4纸了,Excel按下这个键,一张纸可以打印全部表格内容...
  8. jfinal 普通java工程_JFinal getModel方法如何在java项目中使用
  9. java使用jacob语言实现阅读文字,文字转语音
  10. Android Eclipse 处理重构“AndroidPackageNameRefactoring”时捕获到异常
  11. DenseNet翻译:Densely Connected Convolutional Networks
  12. Spring中@Autowired注入static静态变量空指针异常
  13. lua 令牌桶 源码_Redis和Lua脚本(实现令牌桶限流)
  14. ps常见颜色以及其色值
  15. java构造块与静态块
  16. 抢红包: 红包过期失效案例
  17. 原来早就被安排了,旅行社用机器学习给你推个性化定制游
  18. diybox路由器设置教程_tp link无线路由器设置图文教程
  19. 4月计算机网络原理试题,4月全国自考计算机网络原理试题及答案解析.docx
  20. 松耦合(Loose coupling)笔记

热门文章

  1. 网工内推 | 互联网大厂,字节跳动招资深网工,最高40k*15薪
  2. 《数值分析》-- 牛顿插值
  3. 特征点匹配算法(1)尺度空间
  4. 虚拟机ping不通过外网怎么解决?
  5. 三维模型和场景数据自动导入UE4的方法与流程
  6. 数独游戏设计(草稿)
  7. 深度强化学习:PPO + AI2THOR问题总结
  8. ubuntu服务器的软件源
  9. EasyDSS如何实现定期检测和取读加密狗授权?
  10. delphi7在AdvStringGrid中添加ComboBox方法,记录下来