龙空技术网

从零开始学习C语言丨循环结构

三玹CC 460

前言:

此时兄弟们对“c语言for循环中不能使用外部变量循环吗”大体比较注意,大家都想要知道一些“c语言for循环中不能使用外部变量循环吗”的相关资讯。那么小编在网摘上汇集了一些对于“c语言for循环中不能使用外部变量循环吗””的相关知识,希望小伙伴们能喜欢,看官们一起来了解一下吧!

各位朋友大家好呀!今天是国庆前的最后一个工作日了,不知道大家的心情是怎么样的,反正今天的我几乎无心工作,已经迫不及待地想要开始美好的国庆假期了。

但再怎么躁动,今天还是得把循环结构的内容整理出来,毕竟学习永不止步嘛!

首先,我们先来认识一下什么是循环?循环是在满足某个条件的情况下,让计算机帮忙重复执行某个命令或者某一块命令。

C语言中的循环结构包括了:for循环、while循环、do...while循环以及嵌套循环。

for循环

先来看一下 for 循环的语法结构:

for(init;condition;increment){  statements;}

for循环要具备的四个部分:

1、init:初始值。一般是变量赋值,只在第一次循环的时候才会被使用到,之后的每一次循环就用不到这个初始值。其作用是为了赋给后面的 condition 中进行判断。

2、condition:判断式。循环结构中的判断条件,第一次循环开始前接收 init 传过来的值,往后是接收 increment 传过来的值。判断是否成立,成立则开始循环,不成立就结束循环。

3、statements:执行语句。当 condition 里面的条件满足时,则会开始执行循环代码块里面的指令。

4、increment:增量表达式。每一次循环执行完语句后,都会调用 increment 中的命令,更新 init 定义的变量的值。然后传给 condition,继续循环。

接下来,我们来用 for 循环来打印 0-100 的内容:

for(int i=0;i<=100;i++){  printf("%d", i);}

第一个初始值,初始化了一个 int 类型的变量 i,并给它一个初始值 0。当然声明变量的行为,也可以在 for 循环之外定义的。

不过这两者是有区别的。for循环里面定义的称为临时变量,当for循环结束后,这个变量就从内存中删掉了,在循环结构之外使用变量 i 是会报错的;for循环外面定义的称为全局变量,即使循环结束,变量 i 还是存在,且此时的值是 101。

一般建议是在for循环中进行变量的初始化。

第二个判断式,判断 i 是否小等于100,是的话就执行下面的打印命令,不是的话就结束循环不再运行。

第三个执行语句,每循环一次都会执行一次打印命令,把此时 i 的值打印在控制台。

第四个增量表达式,每循环一次,i 变量就自增一次,然后传给判断式进行判断。以此往复 2-4 的内容。

那么有朋友要问,除了自增,我想自减行吗?

当然也是可以的。同样是打印0-100之间的数字,但是要求是从100开始。这时候初始值要初始化 i 变量的值是 100,判断式是小等于 0,增量表达式就可以使用自减 i--。

while循环

同样,while循环也是需要初始值,判断式,执行语句以及增量表达式。

语法结构:

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

和 for 循环不同的是,while 的初始值得在循环体外面进行初始化,然后将初始化后的变量传递给 while 关键字后面括号里的条件判断式。

do...while循环

和while循环很相似,但又有不同。同时,do...while是一种比较特殊的循环结构,即便判断的条件不满足,都至少会执行一次循环体的内容

来看一个简单的例子:

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

如果按照 while 循环,首先会将初始化的 i 变量代入​while后面的判断式。显然结果是不满足的,因此是不会执行代码块里面的内容。所以在while循环里面,这个案例只输出了一个 0​。

但在do...while里,这段代码的结果​输出是:1 1。

按照我的理解,计算机语言是按顺序执行的,那么do...while循环首先被执行的是 do 后面的​代码块。因此,执行了一次累加和打印命令​。

紧接着运行到while的判断式,结果不满足条件,​该循环就结束了。

最后再执行代码块外面的打印命令,而此时变量 i 的值已经发生了改变,结果​就是 1 1。

嵌套循环

循环结构同判断结构一样,也是可以进行嵌套(套娃行为)的。

​例如:循环打印1-10中的所有值,在打印每一个值的时候,同时跟着要打印​ 3 个 1。(用for循环写)

for(int i=1;i<=10;i++){  printf("%d",i);  for(int j=1;i<=3;i++){    printf("1");  }}

嵌套的行为在代码中建议是尽可能少用,一是影响代码的阅读性,二是​会导致后期代码维护变得困难。

所以,嵌套这个行为尽可能少用;当不得不用的使用,也要尽可能少嵌套的层数,一般三个就差不多了。

关键字

C语言中有三个被应用在循环中的关键字,分别是:

​break:用来终结循环的。

​continue:用来跳过​循环中符合某个条件的内容。

​goto:​用来把控制无条件转移到同一函数内被标记的语言。但这个关键字通常都不被建议使用,​就不在这里展开了。

break 和 continue 在循环中通常需要和​判断结构结合在一起使用

首先看一下 break 的使用。​例如:我有一百个​苹果,但我只需要从中拿出三个就够了。

for(int i=1;i<=100;i++){  printf("你拿了%d个苹果。\n", i);  if(i == 3){    printf("你已经拿到3个苹果了,停手吧!");    break;  }}

​运行结果:

你拿了1个苹果。

你拿了2个苹果。

你拿了3个苹果。

你已经拿到3个苹果了,停手吧!

​再来看一下 continue 的使用。例如:10 以内的数字,除了 3 的倍数的数字,其他都要打印出来。

int i=0;while(i<10){  if(i % 3 == 0){    continue;  }  printf("%d", i);}

​运行结果:0124578

死循环

前面都是在满足条件的情况下发生,那么如果一直都不满足判断式的条件,那么结果会是怎么样呢?

答案很明显,就是会一直​循环下去,永不停息。

这种情况就会导致程序一直在运行当中,不会正常结束。这种情况就类似于先帝创业未半,而中道崩殂。也就被称之为死循环

在程序中,一旦出现循环的判断条件一直处于满足的情况下,就要注意了。

死循环,一般都是要和 break 关键字结合在一起的,用来强行终止​循环。

下面来看一下 for循环、while循环、do...while循环的​死循环状态。

// for循环for(int i=0; i < 1; ){  printf("循环中...");}// while循环while(1){  printf("循环中...");}// do...while循环do{  printf("循环中...");}while(1);

想要让循环成为了一个死循环其实很简单,只要保证循环中判断条件式的结果一直是为真,也就是符合条件的情况。

总结

关于循环结构的知识就讲到这里结束了,文中有什么不足之处,希望大家可以在评论区留下宝贵建议。下一篇,准备用学习的判断和循环结构来实现简单的算法——二分法以及冒泡排序。

最后,祝福每一位朋友国庆节快乐!!!

标签: #c语言for循环中不能使用外部变量循环吗 #循环结构的语法 #循环的基本语句结构和流程 #c语言实验三循环结构 #c语言的循环结构图