欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

总结C语言中的循环语句

最编程 2024-08-11 22:02:11
...

while循坏:

网络异常,图片无法展示
|

for循环:
网络异常,图片无法展示
|

while和for循环的对比:
网络异常,图片无法展示
|

区别:for while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。

do while循环

使用条件:使⽤在循环体⾄少被执⾏⼀次的场景下

eg:输⼊⼀个正整数,计算这个整数是⼏位数?
//例如:
//输⼊:1234 输出:4
//输⼊:12 输出:2

#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 int cnt = 0;
 do
 {
 cnt++;
n = n / 10;
 } 
while (n);
 printf("%d\n", cnt);
 return 0;
}

问:为什么n=0的时候还能计算出一个

答:

这是因为在这段代码中使用了 do-while 循环,循环条件是 n 的值不为 0。即使 n 的初始值为 0,循环体内的代码仍然会执行一次,然后才会检查循环条件。因此,即使 n 的初始值为 0,cnt 的值也会至少增加一次,最终输出 1。

这是因为 do-while 循环先执行循环体,然后再判断循环条件。与之相反的是 while 循环,它会先判断循环条件,然后再执行循环体。如果你希望 n 的初始值为 0 时不进行计算,可以改用 while 循环并将判断条件放在循环之前。

break和continue在循环语句中的作用

break:永久的终⽌循环.

#include <stdio.h>
int main()
{
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 break;
 printf("%d ", i);
 }
 return 0;
}

运行结果:

网络异常,图片无法展示
|

 

continue:跳过本次循.环中 continue 后的代码,直接去到循环的调整部分。

将上面的break换成continue

#include <stdio.h>
int main()
{
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
 printf("%d ", i);
 }
 return 0;
}

运行结果:

网络异常,图片无法展示
|

对比for循环和while循环中continue对代码的运行影响:

网络异常,图片无法展示
|

分析代码可以知道它们修改条件的位置不同

对于while循环的修改条件在continue后面所以当i=5时,他没法继续修改,而是陷入i=5的死循环

对于for循环的修改条件在continue上面,所以当i=5时,它会跳出printf函数来到上面进行条件修改,在i=5这个基础上进行i++

do while语句中break和continue的作用跟while一样:

网络异常,图片无法展示
|

 

goto语句

作用:goto 语句可以实现在同⼀个函数 内跳转到设置好的标号处。

例如:

#include <stdio.h>
int main()
{
 printf("hehe\n");
 goto next:
 printf("haha\n");
 
next:
 printf("跳过了haha的打印\n"); 
 return 0;
}

在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常快速

例如:

for(...)
{
 for(...)
 {
 for(...)
 {
 if(disaster)
 goto error;
 }
 }
}
error:
 //...

本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套

就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。