C语言笔记:循环

while循环

//while 语法结构

        while(表达式)

                循环语句;
        比如我们实现: 在屏幕上打印1-10的数字。
                
        
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0; 
}

while语句中的break和continue

        break介绍

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

            总结: break在while循环中的作用: 其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。

        continue介绍 

//continue 代码实例1
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
     if(i == 5)
         continue;
     printf("%d ", i);
     i = i+1;
 };
 return 0; 
}


//continue 代码实例2
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
    i = i+1;
    if(i == 5)
         continue;
    printf("%d ", i);
 };
 return 0; 
}

                总结: continue在while循环中的作用就是: continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断

for循环

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

                循环语句;

         表达式1

                表达式1为初始化部分,用于初始化循环变量的。

        表达式2
                表达式2为 条件判断部分 ,用于判断循环时候终止。
        表达式3
                表达式3为 调整部分 ,用于循环条件的调整。

 

        使用for 循环 在屏幕上打印 1-10 的数字
                
#include <stdio.h>
int main()
{
 int i = 0;
 //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
 for(i=1; i<=10; i++)
 {
     printf("%d ", i);
 };
 return 0; 
}

        break和continue在for循环中 :我们发现在for循环中也可以出现breakcontinue,他们的意义和在while循环中是一样的。 但是还是有些差异:

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


//代码2
#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
     if(i == 5)
         continue;
     printf("%d ",i);
 };
 return 0;
}
  for 语句的循环控制变量
       建议:
1. 不可在 for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议 for 语句的循环控制变量的取值采用 前闭后开区间 写法。
          int i = 0 ;
// 前闭后开的写法
        for ( i = 0 ; i < 10 ; i ++ )
                {}
// 两边都是闭区间
        for ( i = 0 ; i <= 9 ; i ++ )
                {}

        一些for循环的变种:

#include <stdio.h>
int main()
{
 //代码1
 for(;;)
 {
 printf("hehe\n");
 }
    //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问
题。
    
    //代码2
    int i = 0;
    int j = 0;
    //这里打印多少个hehe?
    for(i=0; i<10; i++)
   {
        for(j=0; j<10; j++)
       {
 printf("hehe\n");
       }
   }
    
    //代码3
    int i = 0;
    int j = 0;
    //如果省略掉初始化部分,这里打印多少个hehe?
    for(; i<10; i++)
   {
        for(; j<10; j++)
       {
 printf("hehe\n");
       }
   }
    
 //代码4-使用多余一个变量控制循环
 int x, y;
    for (x = 0, y = 0; x<2 && y<5; ++x, y++)
   {
        printf("hehe\n");
   }
 return 0; 
}

        考一考:

//请问循环要循环多少次?
#include <stdio.h>
int main()
{
 int i = 0;
 int k = 0;
 for(i =0,k=0; k=0; i++,k++)
        k++;
 return 0; 
}

do...while()循环

        do

                循环语句;

        while(表达式);
   
        do语句的特点 :循环至少执行一次,使用的场景有限,所以不是经常使用。

         

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

goto语句

        C语言中提供了可以随意滥用的 goto 语句和标记跳转的标号。 从理论上 goto 语句是没有必要的,实践中没有 goto 语句也可以很容易的写出代码。 但是某些场合下goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程。 例如:一次跳出两层或多层循环。
多层循环这种情况使用 break 是达不到目的的。它只能从最内层循环退出到上一层的循环。
goto 语言真正适合的场景如下:
        
for (...)
    for (...)
  {
        for (...)
      {
            if ( disaster )
                goto error ;
      }
  }
   
error :
if ( disaster )
        // 处理错误情况
下面是使用 goto 语句的一个例子,然后使用循环的实现方式替换 goto 语句:
一个关机程序
                
#include <stdio.h>
int main()
{
    char input[10] = {0};
    system("shutdown -s -t 60");
again:
    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    scanf("%s", input);
     if(0 == strcmp(input, "我是猪"))
       {
            system("shutdown -a");
       };
    else
       {
            goto again;
       };
    return 0;
 }

好了,就先到这里了,累了。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值