登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 第五章:循环结构

[复制链接]
发表于 2017-1-17 18:33:24 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C语言
学习安排: 详见:http://bbs.hpuedd.com/forum.php?mod=viewthread&tid=837&fromuid=385
开始时间: 2017-01-16
结束时间: 2017-01-16
本帖最后由 夜色星空 于 2017-1-16 21:14 编辑
机器的一个特点

就是用来执行一些重复性高的事情的

这一点在工业领域尤为显著

假设:我想输出十组“hello world!”

有一个办法

调用十次printf()函数

这个可以

但是,我要调用一万次

你还能一行一行的输代码吗?

这也就体现了循环的必要性

循环分两种,当型与直到型

其代表分别是

while();

for(;;);


do-while;

先介绍一下当型

while(表达式){语句块}

乍一看与条件语句没什么区别

但它有一个条件语句没有的功能

执行完语句块后再判断表达式

若为真则继续执行语句块

如:

2-1.PNG

当a=10时,语句不执行,一共十句

这样写大大缩短了代码长度

问:如果去掉a++;会怎样?

答:那么a一直等于0,形成死循环,逻辑不通(切记要避免,容易死机)

使用循环语句时,切记使程序可以跳出循环

比如上面的例子,我用a来限制循环次数

再来说说for(;;)语句

其格式如下

for(语句1;表达式;语句2){程序块}

此语句先执行语句1

然后判断表达式

若为真,执行程序块和语句2然后再判断表达式(注意:语句1并不执行)

若为假,跳出循环。

如:

2-2.PNG

效果一样,与刚才的while相比,只不过是把赋值语句和自加自减移入了括号中使程序看起来更简洁

举个例子:

2-3.PNG

问:a=?

答:0

原因:即使表达式为假,但语句1已执行,所以为0

当型,告一段落

接下来是直到型

典型代表

do{程序块}while(表达式);

它的执行顺序是

先执行程序块,然后再判断表达式

若为真,则继续执行程序块

若为假,则向下执行

如:

2-4.PNG

为了便于阅读,我加了一句条件语句

这也就是课本上所谓的嵌套语句

就是在语句块中写语句


至此,C语言中的逻辑语句基本结束

下面说一下循环语句的两个关键字

break与continue

先说break

在前章使用switch()时曾用到过

当时说它的作用是跳出switch()语句

同理


它在循环当中作用是跳出当前循环


什么是当前,就是机器正在执行的循环


如:


1-5.PNG


(在此说一下,如果条件或循环语句后只跟一个语句时,花括号可以省略不写)


这个程序说明了,当a==5时执行了break,跳出了for循环


再举一个例子


1-6.PNG


看到没,这就是说我为什么说它只能跳出当前循环


使用一次,只能跳出一层


再来说说continue


这个关键字,表示只能跳出一次循环


什么叫一次


如图:


1-7.PNG


没有5,对吧,因为这一次循环跳过了


再看一个例子


1-8.PNG


问:为什么又有5了?


答:因为先打印了一个5,然后执行了continue


为了更直观


如图


1-9.PNG


也就是说,如果遇到continue


其向下的语句都不执行并且返回去验证循环表达式是否成立


进而判断是否循环


小结:编写一个密码程序(含容错机制)

答案:见附件。(因为发不了源代码,所以只发了txt,把扩展名改成.c就可以运行了)

(你要是一不小心点开了txt文件,你会有惊喜,我在前章准备环节说过,没有编译器,也可以写代码,这就是原因)



简易密码(含容错).txt

302 Bytes, 下载次数: 423

把文件扩展名改为.c就可以使用了

该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表