精华内容
下载资源
问答
  • 杂记之C语言无限循环

    千次阅读 2012-11-13 21:29:31
    嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 汇编代码 -- 在vc6.0中生成相应语句的汇编代码 DEBUG模式  //死循环  for (;;)  {  x = 1;  }  while (true)  {  x = 1;  } 对应的...

    嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

    汇编代码 -- 在vc6.0中生成相应语句的汇编代码 DEBUG模式

     //死循环
     for (;;)
     {
      x = 1;
     }

     while (true)
     {
      x = 1;
     }

    对应的汇编语句为:

     $L270:
    ; 对于for的真循环,没有判断语句,直接执行for循环体内数据
    ; x = 1

     mov DWORD PTR _x$[ebp], 1
    ; for循环执行
     jmp SHORT $L270


    $L271:
    ; 对于while(true)循环,有3条汇编语句来判断
     mov eax, 1
     test eax, eax
     je SHORT $L274
    ; x = 1
     mov DWORD PTR _x$[ebp], 1
    ; 无条件跳转到判断语句开始位置
     jmp SHORT $L271

    理解:for比while要快一些。for(;;)是直接跳转,while多了两条指令而已。

    Loop:                                                                                                                                                                                                                                 -------                                      

    goto Loop;      

    运用了汇编思想,直接使用goto语句。

    展开全文
  • c语言循环

    2018-02-26 17:32:04
    C语言有2种常用的循环结构,分别是for循环和while...) 这是一个死循环死循环,就是永不停止的循环。 比如 for(;;){ puts("123"); //会无限打印123 } --------------------分割线------------------ int i; ...

    目录

    for循环

    while循环

    do while循环

    循环的嵌套使用

    改变循环执行的状态

    continue 和 break 的区别


    C语言有2种常用的循环结构,分别是for循环和while循环,下面我们先看for循环。

    for循环

    for(;;)    这是一个死循环,死循环,就是永不停止的循环。

    比如

    for(;;){

        puts("123"); //会无限打印123

    }

    --------------------分割线------------------

    int i;

    for(i=0;i<10;++i){

        printf("hello world\n");

    }

    该语句表示,循环打印10次hello world。首先i=0;是初始值,满足i<10这个条件,所以打印一次hello world,然后i自增1,此时i=2; 2<10。满足条件,再打印一次hello world,i再自增1,当i不满足i<10这个条件时,跳出循环。

    如果我们一开始就给i赋值,int i=0;那么循环可以写成for(i;i<10;++i);

    这里需要特别注意的是,for(i;i<10;++i)中的是分号,不是逗号,这是我们初学者常犯的错误。

    while循环

    while(1) 表示死循环,当然,写while(1)只是习惯与美观,可以写成while(100),while(-10),都是可以的,只要括号内是非0的数值都成立。

    int i=0;

    while(i<10){

    printf("a");    //表示打印10次a    发现比使用for(i=0;i<10;i++);要简便,因为不需要写太多分号。

    i++;    //打印完一次a,i自加1,当i不满足条件i<10的时候,退出循环

    }

    do while循环

    do-while表示先执行一次语句,再进入循环,while则是直接进入循环。下面我们通过代码来看看do-while语句

    示例代码

    //先做了一次,再去执行循环体,即使循环不成立,也会打印一次。

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


    //当我们把while(i<10);改为while(i<1); 这时候while条件不成立,但是也会打印出一个1。

    循环的嵌套使用

    我们知道if-else可以嵌套使用,循环也是如此。循环的嵌套帮助代码提高了可执行性,比如接下来介绍的冒泡排序,选择排序法等,都会使用到循环的嵌套,下面我们通过一个简单的代码说明一下循环的嵌套使用。

    示例代码

    #include<stdio.h>
    int main()
    {
        int a=5;
        int i;
        while(a>0)
        {
            printf("data= %d\n",a);
            a--;
            for(i=0;i<3;i++)  
            {
                printf("hello,world\n"); //a每输出一次,就打印3次hello world,直到a不满足a>0。
            }
    
        }
        return 0;
    }

    可以看到,当a> 0 的时候,打印a目前的值,然后a自减1,此时进入for循环,执行打印hellworld的操作。当打印了3次hellworld以后,才退出for循环,再回到while循环,直到a>0不再成立。

    改变循环执行的状态

    C语言中用 break 语句提前终止本次循环:
    示例代码:

    #include<stdio.h>
    int main()
    {
        int a=5;
        int i;
        while(a>0)
        {
            printf("data= %d\n",a);
            a--;
            break;
            for(i=0;i<3;i++)  
            {
                printf("hello,world\n"); //打印3次hello world
            }
    
        }
        return 0;
    }


    经过编译可以看到,系统只打印了一个5,并没有打印hello,world,因为我们已经用 break 语句提前终止循环
    所以后面的代码将不再运行, break 只有一出现,就马上终止本次函数。

    C语言中使用 continue 语句提前结束本次循环:

    #include<stdio.h>
    int main()
    {
        int a=100;
        for(;a<=200;a++)
        {
            if(a % 5 == 0)
            continue;  //当a能被5整除时,函数跳过printf语句,回到for循环继续判断a的值。
            printf("%d",a);
    
        }
    
        printf("\n"); //换行
    
        return 0;
    }

    通过编译可以看到 当a能被3整除时,不会打印出来。

    continue 和 break 的区别


    continue 只结束 本次 循环(即使不满足条件的那次循环)
    break 是提前终止这个循环。 
     

    下一篇 C语言数组

    欢迎大家百忙之中关注我的微信公众号 编程骑士 领取C语言学习电子书以及各种资料,留言交流,共同进步。

    展开全文
  • shell无限死循环

    2020-11-27 21:31:59
    学习shell脚本,练习脚本时,每次测试脚本都需要重新打开文件,为了方便就想到了死循环,想到shell脚本是基于C语言和C++编写的,顺着想法试了一通C循环方法,没对一个,经过网上大佬们的文章学习,学习到了while循环...

    学习shell脚本,练习脚本时,每次测试脚本都需要重新打开文件,为了方便就想到了死循环,想到shell脚本是基于C语言和C++编写的,顺着想法试了一通C循环方法,没对一个,经过网上大佬们的文章学习,学习到了while循环和for循环,记录一下
    语法:

    while
    命令/条件
    do
    循环语句
    done

    循环机制:如果while后的命令执行成功,或条件真,则执行do和done之间的语句,执行完成后,再次判断while后的命令和条件;如果while后的命令执行失败,或条件为假,循环结束

    While :
    Do
    循环语句
    Done
    

    在这里插入图片描述在这里插入图片描述

    While ( 1 )
    Do
    循环语句
    Done
    

    在这里插入图片描述
    特例:无条件循环

    while true
    do
    语句
    done
    

    在这里插入图片描述
    while可以用作无穷循环,很多地方都用到无穷循环。一个无穷循环如下所示:

    while(true) 
    do
    循环语句
    done
    

    在这里插入图片描述
    这个比较有意思,while后添加了date命令

    While date
    Do
    循环语句
    Done
    

    在这里插入图片描述
    在这里插入图片描述
    For死循环也可以,目前亲试这一条,其他无效报错。

    For (( ;; ))
    Do
    循环语句
    Done
    

    在这里插入图片描述

    展开全文
  • 循环结构是结构化程序设计基本的三种结构,但C语言中的循环不是无限制的,不允许出现死循环,它是有条件的,有限度的一种循环。 下面我们就C语言中几种基础的循环进行了解举例。 while语句 1.流程图: 2.语句格式...

    C语言中几种基础循环结构

    (写之前必须来段废话:昨天敲代码敲到哭,睡觉前疯狂找发际线,然后今天早上满脑子都是我是憨憨,被大佬嫌弃,为了找点成就感来搞点基础的过渡一下,然后回去继续被嫌弃(手动表情包)。)
    循环结构是结构化程序设计基本的三种结构,但C语言中的循环不是无限制的,不允许出现死循环,它是有条件的,有限度的一种循环。
    下面我们就C语言中几种基础的循环进行了解举例。

    while语句

    1.流程图:
    在这里插入图片描述
    2.语句格式(如果表达式为真则进循环体,如果为假则跳过循环体):
    while(表达式){
    循环体;
    }
    3.上例题:从1 加到100(本篇循环都以此为例)
    在这里插入图片描述

    do…while语句

    1.结构图:
    在这里插入图片描述
    2.语句格式:
    do 循环体{
    循环体
    }(while表达式);(注意这里有分号 !)
    3.上题:
    在这里插入图片描述
    4.我觉得要说一下do…whlie和while的区别(说个我自己这个憨憨听的)
    while当括号内条件不成立时候就不会进循环体中了,但do…while无论while中条件是否正确都会进循环体中循环一次,也就是说至少循环一次。

    for语句

    1.流程图:
    在这里插入图片描述
    2。结构语句:
    for(初始化表达式;条件表达式;控制表达式){
    循环体;
    }
    (for循环中的三个表达式都是可以省略的,但分号不能省)
    3.题:
    在这里插入图片描述

    goto语句

    1.语句结构:
    goto 语句标号;
    (语句标号是任意合法的标识符,遵循标识符命名规则)
    2.上题:在这里插入图片描述
    注意:执行到goto语句时,程序无条件地转移到语句标号所标识的语句处,并从该语句继续执行。
    (存在风险,因为是无条件的进行转移)
    还有要注意C语言从语法上来说有些代码是不能出现死循环的哦。
    就这些吧!!!

    展开全文
  • c语言实现无限弹窗

    万次阅读 2018-12-14 22:55:31
    #include <windows.h> #pragma comment (lib, "User32.lib") int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){... while(1){//制造死循环 MessageBox(NULL, TEX...
  • 三种死循环:2.关于for语句3.关于switch语句:关于循环:几个入门代码: 1.三种死循环: (1)goto死循环(所以goto基本不用) int a=1; loop: if(i==1) goto loop; (2)、for(){}当for循环的第二个表达式没有...
  • 记得在刚学c语言的时候,写算法的时候,经常会遇到死循环情况,当死循环时候,结果是那 dos界面,数字刷溜溜的往上滚,滚动条刷溜溜的越来越小,最后只有强制关闭程序,才能终结。 现在在.net中很少遇到死循环的...
  • c语言细节

    2010-02-02 22:54:00
    UL 为unsigned long1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)?#define SECONDS_PER_YEAR (60 * 60 * 24... 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?首选的方案
  • C语言常见小问题

    2018-01-24 21:16:40
    2.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回
  • 循环控制

    2021-04-12 23:19:54
    循环控制 注:本文为学习《C语言从入门到精通》时,对部分章节的总结 1、循环语句 C语言反复执行一段指令,直到满足某个条件...无法终止的循环被称为死循环无限循环。 3、do...while语句 当循环过程必须至少执
  • C语言面试题1

    2019-10-23 16:11:48
    嵌入式系统中经常要用到无限循环,你怎样用C编写死循环你呢? While(1){} 用变量a给出下面定义 一个整型数。 一个指向整型数的指针。 一个指向指针的的指针,它指向的指针是指向一个整型数。 一个有10个...
  • 循环执行之前判断是否继续循环,所有有可能一次也没有被执行,也有可能为无限循环死循环),一定要有能使此表达式的值为0的操作,或在某种·条件下强行终止循环的语句(如break等) #include <stdio.h> int...
  • 4、用变量a定义5、位操作6、符号转换7、typedef和define的区别8、C语言程序代码优化方法9、关键字static的作用10、const的使用11、评价下面的代码片断12、写一个标准宏MIN,输入两个参数返回较小的一个13、嵌入式...
  • 第三章: C语言程序设计初步 C语言程序设计 本课介绍C语言程序设计的基本方法和基本的程序语句。 从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成...
  • C语言)复习资料().docx

    2020-10-27 02:23:33
    下述循环的循环次数是(B) int k=2 ;... A无限次 B0次 C1次 D2次 在下列选项中没有构成死循环的程序段是 C Aint i=100 ; Bfor ; while 1 {i=i%100+1 if i>100 break } Cint k=1000 Dint s=36 do {++k } while
  • 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 5. 用变量a给出下面的定义 6. 关键字static的作用是什么? 7.关键字const是什么含意? 8. 关键字volatile有什么含意 并给出三个不同的例子 9....
  • 循环结构设计

    2018-02-27 13:33:09
    循环结构设计C语言有2种常用的循环结构...) 这是一个死循环,何为死循环,就是永不停止的循环。比如for(;;){ puts("123"); //会无限打印123}--------------------分割线------------------int i;for(i=0...
  • C语言制作Fly bird飞鸟游戏

    千次阅读 2019-05-04 21:17:54
    制作思路: 鸟每隔一段时间下降一格 ...无限循环随机出现墙 原版游戏: 用C制作出来的效果: 全部代码: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <...
  • C语言基础--算法

    2015-06-17 20:21:00
    算法的基本概念 以下只是个人学习的笔记,由于我也是刚接触,所以有可能有错误,如有错误,请指出 算法:是解决一个问题的完整的步骤描述,是...算法不能出现死循环,如计算一个累加的程序,必须要指定一个最终...
  • //死循环,相当 LOOP: goto LOOP; } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) #include <AT89x52.h> //该头文档中有单片机内部...
  • win环境下c语言05

    2014-03-04 20:55:45
    函数的递归调用就是函数自己调用自己,但是这个函数最后必须要有一个停止递归调用的条件,不然函数递归调用就会无限制的调用下去——死循环;函数的参数有实参和形参,见名知意,实参是参量,形参是变量。形参出现在...
  • 因此,进入while循环后,一定要有能使此表达式的值变为0的操作,否则循环将会无限制地进行下去,成为无限循环死循环)。若此表达式的值不变,则循环体内应有在某种条件下强行终止循环的语句(如break等)。 2.for...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型...
  • 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)? #define SECONDS_... 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 首选的方案是: while(1) {
  • 难道在C语言中一个结构不能包含指向自己的指针吗? o 2.7 怎样建立和理解非常复杂的声明?例如定义一个包含 N 个指向返回指向字符的指针的函数的指针的数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示...
  • } //给 P1_3 赋值 1,引脚 P1.3 就能输出高电平 VCC //死循环,相当 LOOP: goto LOOP; //void 表示没有输入参数, 也没有函数返值, 这入单片机运行的复位入口 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量 TMOD ...
  • 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)?#define SECONDS_PER_YEAR (60 * 60 * 24 ... 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?首选的方案是:while(1) { }4
  • 面试题:最常见最有可能考到的C语言面试题汇总

    万次阅读 多人点赞 2017-08-17 17:03:54
    1. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #defineSECONDS_PER_YEAR (60 * 60 * 24 * 365)UL(无符号...4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

c语言无限循环死循环

c语言 订阅