第七节 循环结构;goto语句

目录

7.1 while循环

7.1.1 if 和 while的对⽐

7.1.2 while的执行流程

7.1.3 while的练习

7.2  for循环

7.2.1 语法形式

7.2.2 for循环的执⾏流程

7.2.3 for 循环的练习

7.3 while 和  for 循环的对比

7.4 do while 循环

7.4.1 do while 的语法形式

7.4.2 do while循环的执⾏流程

 7.4.3do while循环的练习

7.5  break和continue语句

 7.5.1 while循环中的break和continue

7.5.1 break举例

7.5.2 for循环中的break和continue

7.5.2 .1 break举例

7.5.2.2continue举例

7.5.3 do while循环中的break和continue

7. 6 循环的嵌套

7.7 goto语句


   在前面的内容中 我们学习了分支语句第六节 分支语句 (switch部分)-CSDN博客,第六节 分支语句 (switch部分)-CSDN博客同样循环语句也是C语言中常用的语句.C语⾔提供了3种循环语句,

7.1 while循环

while 就是其中⼀种,接下来就介绍⼀下 while 语句。 while 语句的语法结构和 if 语句⾮常相似。

7.1.1 if 和 while的对⽐

if 语句的写法

if(表达式)
    语句;

while语句的写法   

while(表达式)
    语句;

通过写法上,可以看到二者有很多的相似性,下面通过一个实例具体分析一下

#include <stdio.h>
int main()
{
    if(1)
    printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
    return 0;
}

#include <stdio.h>
int main()
{
    while(1)
    printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
    return 0;
}

通过上述运行结果,我们也看出了他们的区别,while语句是可以实现循环效果的。 

7.1.2 while的执行流程

⾸先执⾏判断表达式,表达式的值为0,循环直接结束;
表达式的值不为0,则执⾏循环语 句,语句执⾏完后再继续判断,是否进⾏下⼀次判断

7.1.3 while的练习

在屏幕上打印 1~10 的值

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

7.2  for循环

7.2.1 语法形式

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:
for(表达式1; 表达式2; 表达式3)
    语句;//如果循环体想包含更多的语句,可以加上⼤括号
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整

7.2.2 for循环的执⾏流程

  ⾸先执⾏ 表达式 1 初始化循环变量,接下来就是执⾏ 表达式 2 的判断部分, 表达式 2 的结果如果
==0,则循环结束; 表达式 2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式 3 ,调整循环变量,然后再去 表达式 2 的地⽅执⾏判断, 表达式 2 的结果是否为0,决定循环是否继 续。 整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环.

7.2.3 for 循环的练习

在屏幕上打印出1-10的内容,

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

7.3 while 和  for 循环的对比

   。
                

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

7.4 do while 循环

7.4.1 do while 的语法形式

 在循环语句中 do while 语句的使⽤最少,它的语法如下

do
    语句;
while(表达式);
  while for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

7.4.2 do while循环的执⾏流程

 
do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的
结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。 ​​​​​​​

 7.4.3​​​​​​​do while循环的练习

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

⼀般 do while 使⽤在循环体⾄少被执⾏⼀次的场景下,所以较少⼀些。

7.5  break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break continue 两个关键字
break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执
⾏。
continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所
差异的​​​​​​​

 7.5.1 while循环中的break和continue

7.5.1 break举例

#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
 {
    if(i == 5)
        break;//当i等于5后,就执⾏break,循环就终⽌了
    printf("%d ", i);
    i = i+1;
 }
 return 0;
}

运行后,再打印了1,2,3,4后,当i等于5的时候,循环正 break 的地⽅终⽌,不再打印,不再循环。
所以 break 的作⽤就是永久的终⽌循环 ,只要 break 被执⾏, break 外的第⼀层循环就终⽌了。
那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤ break 来完成。
7.5.1continue举例
#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
    if(i == 5)
        continue;     //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅//    
    printf("%d ", i);
    i = i+1;                      //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
        
    }
    return 0;
}

运行后, continue 在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏
下⼀次循环的判断。 continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接 到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成 死循环

7.5.2 for循环中的break和continue

7.5.2 .1 break举例

       和 while 循环中的 break ⼀样, for 循环中的 break 也是⽤于终⽌循环的,不管循环还需

要循环多少次,只要执⾏到了 break ,循环就彻底终⽌​​​​​​​

#include <stdio.h>
int main()
{
    int i = 1;
    for(i=1; i<=10; i++)
    {    
        if(i == 5)
            break;
        printf("%d ", i);
    }
return 0;
}
break 的作⽤是永久的终⽌循环,再打印了1,2,3,4后,当i等于5的时候,循环正 break 的地⽅终⽌,不再打印,

7.5.2.2continue举例

#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 循环中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调
整部分。通过i的自增,继续执行剩余代码
我们对⽐⼀下 while 循环和 for 循环中 continue 的区别:
       
                                                           ​​​​​​​
while循环中continue跳出本次循环后,i的数值没有自增,for循环中continue跳出本次循环后,i的数值自增,代码将继续执行

7.5.3 do while循环中的break和continue

do.while 语句中的 break continue 的作⽤和 while 循环中⼏乎⼀模⼀样,
                                  

7. 6 循环的嵌套

前⾯学习了三种循环 while do while for ,这三种循环往往会嵌套在⼀起才能更好的解决
问题,也就是我们所说的:循环嵌套,这⾥我们看⼀个例⼦。
找出100~200之间的素数,并打印在屏幕上。
  题⽬分析:
1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤
循环解决。
3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。

参考代码

#include <stdio.h>
int main()
{
    int i = 0;
    for(i=100; i<=200; i++)
    {
     
    int j = 0;
    int flag = 1;//假设i是素数
    for(j=2; j<i; j++)
    {
        if(i % j == 0)
        {
            flag = 0;
            break;
        }
     }
       if(flag == 1)
            printf("%d ", i);
 }
    return 0;
}

7.7 goto语句

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数
内跳转到设置好的标号处。
#include <stdio.h>
int main()
{
    printf("hehe\n");
    goto next;
    printf("haha\n");

next:
    printf("跳过了haha的打印\n");
    return 0;
} 

goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 ,使⽤ goto 就⾮常的⽅便了。
for (...)
{
        for (...)
                {
                for (...)
                        {
                        if (disaster)
                                goto error;
                        }
               }

}
error:
本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套,就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。

持续更新中~ ✨

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值