疫情之下,循环之路开启

每日一句:

每个人一生中都至少应该获得一次全场起立鼓掌的机会,因为我们都曾胜过这个世界。

    —R.J.帕拉西奥《奇迹男孩》

疫情之下,最容易受到影响的群体,就是学生群体。

那么我们便可以写一个程序来证明,假设箭第一次走完一半的路程时间为1秒,然后每1/2秒走完剩余距离的一半,然后再用1/4秒走完剩余距离的一半...那么我们可以用下面的这个式子来表达总时间:

1+1/2+1/4+1/8+...

这里是不是有很多个式子相加,那么我们该如何把这些式子写到程序中呢?

下面我来一一介绍这三位光杆司令(While,do while,for)

NO.1

首先登场的呢是我们的while,它是一个英文单词独挡一面啊。While语句也称While循环,循环中While是入口条件循环,程序再进入循环体之前必须获取输入的数据并检查条件中的值。

1.while循环的通用形式如下:

while(表达式){

循环体; }//循环体也可以为空语句

注释:当表达式为真时,则执行下面的循环体;循环体执行完之后再判断表达式是否为真,如果为真,则再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。这便是 while 的执行顺序。

2.终止while循环:

while循环有一点非常重要:在构建while循环时,必须要让测试表达式的值有变化,且表达式最终要为假,否则循环就是死循环。

还要明确一点就是只有在对测试条件求值时,才决定是终止还是循环继续。

3.while:入口条件循环(for循环语句也是)

while循环是使用入口条件的有条件循环。什么是“有条件”呢,它其实指的是语句部分的执行取决于测试表达式描述的条件。表达式是一个入口条件,因为必须要满足条件才能进入循环体。若条件不满足,则不会进入循环体。

在写while语句时括号中的表达式通常为判断语句,比如:

status==1;//判断status是否为1

status=1;//把1赋值给status

要注意的是==与=是有区别的,,==是C的相等运算符,上面表达式是判断status是否为1。而=是把1赋值给status。

注:

当初学者学编程时,for、while、do  while后面的执行语句不论有多少行,就算只有一行也要加“{}”,以养成良好的编程习惯。

我们在敲代码时通常会用到伪代码,伪代码是一种简单的句子表示程序思路的方法。它与计算机的形式相对应。它有助于我们理清设计程序的逻辑。使用伪代码的好处便是我们可以把注意力集中在程序的组织和逻辑上,可以暂时不用思考该如何用编程语言来表达自己的想法。

看维基百科说伪代码:

伪代码(英语:pseudocode),又称为虚拟代码,是高层次描述算法的一种方法。它不是一种现实存在的编程语言(已经出现了类似伪代码的语言,参见Nuva);它可能综合使用多种编程语言的语法、保留字,甚至会用到自然语言。

它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java、C++、C、Delphi 等等)它更类似自然语言。它是半形式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里可以使用任何一种作者熟悉的文字,例如中文、英文,重点是将程序的意思表达出来)描述出来。使用伪代码,可以帮助我们更好的表述算法,不用拘泥于具体的实现。

人们在用不同的编程语言实现同一个算法时意识到,他们做出来的实现(而非功能)很不同。程序员要理解一个用他并不熟悉的编程语言编写的程序,可能是很困难的,因为程序语言的形式限制了程序员对程序关键部分的理解,而伪代码可以用于帮助人们理解解释代码的语法、规则、内涵和结构。于是伪代码就这样应运而生了。

当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用伪代码,以帮助学习者能够快速并透彻地理解。

NO.2

第二位登场的老大便是do while,同样也是三大光杆司令中的一员。但他跟While不同,do while循环是出口条件语句。何为出口条件循环呢,即在循环的每次迭代之后检查测试条件,保证至少能执行一次循环体中的内容。

1.do while循环的通用形式如下:

do{   

  循环体  }while();注:do while语句以分号结尾

注释:do-while 循环的执行流程:首先无条件地执行一次循环体,然后再根据循环控制表达式的值来判断是否继续执行循环体。若为真,则继续执行;若为假,则停止执行,退出 do-while 循环。也就是说,do-while 循环至少会执行一次循环体。

那么我们该如何区别While和do while呢。前面我写过一篇文章关于while和do while的文章,见下:

  深探 while 与 do while

注:用关系运算符和表达式比较大小

循环经常要用到测试表达式来作比较,这样的表达式称为关系表达式。出现在关系表达式中间的运算符叫做关系运算符。相关关系运算符如下:

既然说到关系运算符,那我们来讲讲运算符的优先级

关系运算符的优先级比算术运算符低,比赋值运算符高。相关的运算符优先级表这里就不放出来了,比较长,感兴趣的可以去百度搜一下。

NO.3

for作为最后出场的老大,也算是三个老大里出场最多的了。为什么怎么说呢,因为它好用嘛,对不对,因为好用才经常出现在C语言的代码中。

1.for循环的通用形式如下:

for(表达式1;表达式2;表达式3){

循环体}

注释:for循环后面的括号里有三个表达式,分别用两个分号隔开。第一个表达式是初始化,只会在循环开始时执行一次;第二个为测试条件,在执行循环之前对表达式求值;如果为假,循环结束,否则继续执行第三个语句并继续循环。

for循环的第一个表达式给计数器赋值,第二个表达式表示计数器的范围,第三个表达式递增或者递减计数器。

for循环之所以好用,也是因为它的灵活性。并且还有如下九种用法:

可以使用递减运算符来递减计数器

可以让计数器递增2,10等

可以用字符代替数字计数

除了测试迭代次数外,,还可以测试其他条件

可以让递增的量几何增长,而不是算术增长

第三个表达式可以使用任意合法的表达式

可以省略一个或多个表达式(但不能省略分号),只要在循环中包含能结束循环的语句即可

第一个表达式不一定是给变量赋初值,也可以使用printf()

循环体中的行为可以改变循环头中的表达式

我们在使用循环时该如何选择使用哪一种语句呢?

首先,我们得先确定是需要入口条件循环还是出口条件循环。一般我们都是入口条件循环用的次数较多。这是因为按照一般原则是在执行循环之前测试条件比较好,而且测试放在循环的开头可使程序的可读性更高。还有就是在许多应用中,要求在一开始不满足测试条件时就直接跳过整个循环。

我们平常用得最多的还是入口条件循环,那么在入口条件循环中我们该如何选择是使用for语句还是while语句呢?这个就取决于个人喜好啦,原因是两者可以互补,for语句和while语句大多数情况下都是可以互相替换的。

最后的话

相信你学到这里或多或少都对循环有了一定的了解,想要更好的理解循环,建议多看几遍哦。这也是经过多次阅读书籍从而整理出来的循环里最重要的一些知识点。希望大家看完这篇文章后对循环有更好的了解。

一个正在学习C语言的人,致力于将C讲得更透彻!

点赞关注~谢谢你~

欢迎在留言区留下你的想法,让我们一起讨论提高。

关注公众号即可获得千G资源哦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352