精华内容
下载资源
问答
  • while语句在单片机中的用法
    千次阅读
    2020-03-25 18:34:21

    while语句

    1

    while(语句){语句}中小括号中的语句是判断真假,如果为真,则执行大括号中的语句,如果为假,则不执行下面的语句。
    while(语句);中的语句也是一个判断,当小括号中的语句表达式值不为0时,也就是为真,就一直判断,直到里面的表达式值为0时结束判断,去执行下一步的程序,就是语句为真什么都不执行

    2、while(1){}和while(1);

    while(1)会循环执行后面的语句
    while(1);表示一个死循环,循环一直运行下去,因为条件一直为真.

    while(1){……}是让单片机一直执行{……}中内容,防止程序跑飞,通常用于主程序主体,确保程序持续执行
    while(1);是一条指令,它让单片机停在这个位置,一般用来检测中断,只有cpu收到中断指令,才会跳出while(1),进入中断服务子程序;
    你只要记住whlie(1)本质是死循环,while(1)中的指令会不断重复执行,除非有中断,while(1);可以看作while(1){//空指令},它执行的是空指令,于是单片机就停在这行代码处.

    更多相关内容
  • 以下的类中有while(条件){}这样的语句,但是不知道空语句在这有什么作用?classshareClass{//共享类privateintn;privatebooleanflag=false;voidproduce(inti){while(flag){}n=i;f...以下的类中有while(条件){}...

    以下的类中有while(条件){}这样的语句,但是不知道空语句在这有什么作用?classshareClass{//共享类privateintn;privatebooleanflag=false;voidproduce(inti){while(flag){}n=i;f...

    以下的类中有while(条件){}这样的语句,但是不知道空语句在这有什么作用?

    class shareClass { // 共享类

    private int n;

    private boolean flag = false;

    void produce(int i) {

    while (flag) {}

    n = i;

    flag = true;

    }

    void get() {

    while (!flag) {}

    flag = false;

    }

    }

    // 读取数据类

    class Producer implements Runnable {

    shareClass shc;

    Producer(shareClass c) {

    shc = c;

    }

    public void run() { // 生产者产生5个随机数

    for (int i = 0; i < 5; i++)

    shc.produce((int) (Math.random() * 100));

    }

    }

    class Consumer implements Runnable {

    shareClass shc;

    Consumer(shareClass c) {

    shc = c;

    }

    public void run() {

    for (int i = 0; i < 5; i++)

    shc.get(); // 消费者读取数据

    }

    }

    public class TheadsCommunication {

    public static void main(String args[]) {

    shareClass shc = new shareClass();

    Thread t1 = new Thread(new Producer(shc));

    Thread t2 = new Thread(new Consumer(shc));

    t1.start();

    t2.start();

    }

    }

    其实这是一个关于多线程的例子,但不太清楚while空语句在这起什么作用?

    展开

    展开全文
  • 判断语句 if语句 if语句语法结构 if语句示例解析 条件表达式 1.标准if条件语句的语法 if expression: if suite else: else_ suite 如果表达式的值非0或者为布尔值True,则代码组if_ suite被执行;... 字符串、
  • 9. C 语言 -- 循环结构:while语句和 do … while语句

    万次阅读 多人点赞 2018-10-19 19:17:45
    本文主要讲述 C 语言循环结构中的 while 和 do while 语句,并且介绍了 scanf, getchar 和 gets三种输入的使用方法及使用情况。

    本博客主要内容为 “小甲鱼” 视频课程《带你学C带你飞》【第一季】 学习笔记,文章的主题内容均来自该课程,在这里仅作学习交流。在文章中可能出现一些错误或者不准确的地方,如发现请积极指出,十分感谢。
    也欢迎大家一起讨论交流,如果你觉得这篇文章对你有所帮助,记得评论、点赞哦 ~(。・∀・)ノ゙

    1. 循环结构

      循环结构是编程中常常使用的结构,当在程序中存在着需要循环执行多次的代码时,可以采用循环结构实现。在 C 语言中常见的是 while 循环和 for 循环,在这里首先介绍 while 循环。

    2. while 循环结构

    2.1 while 语句

      while 语句的语法非常简单,使用方法如下

    while (表达式)
        循环体
    

    只要表达式的值为真,就会不断执行循环体里边的语句或程序块,如下图所示

    举例说明

    示例1

      现在我们要计算1+2+3+……+100的结果,可以画出如下的流程图

    根据流程图可以得到如下的程序

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

    示例2

      统计从键盘输入的一行英文句子的字符个数,其流程图如下所示

    根据流程图可以得到如下代码

    #include<stdio.h>
    
    int main()
    {
            int count = 0;
            printf("please input a english setence:");
            while (getchar() != '\n')
            {
                    count = count +1;
            }
            printf("it has %d words \n",count);
            return 0;
    }
    

      在ubuntu16.04下通过gcc编译执行得到如下结果
    在这里插入图片描述
    其中 34 个字符包含了其中的空格。

    2.2 do … while 语句

      while 语句的语法非常简单,使用方法如下

    do
        循环体
    while (表达式);
    

    这里需要注意的是,在 while (表达式); 的后面有一个分号,但是在上一个的中 while (表达式) 是没有分号的。do…whilewhile 语句相反,先执行循环体的内容再判断表达式是否为真,如下图所示

      这种循环结构比较特殊,常常用于用户登陆密码验证问题,当输入的密码不正确的时候会要求一直输入密码直至正确(当然生活中的密码往往只可以进行有限次的尝试),常常采用如下左图的使用方式
    在这里插入图片描述
    因为如果采用 while 语句而不是采用 do … while 语句,就会产生上图中右图的现场,代码会有两部分十分相近。

    2.3 小结

      对于上述的两种循环,其中的 while 语句是入口循环条件, do … while 语句是出口循环条件,其中入口循环条件是首先判断条件是否满足,然后在执行循环体内容;而出口循环条件是先执行循环体,然后判断条件是否满足,因此循环体的内容至少会执行一次。

    3. C 语言的三种输入函数

      在这里介绍 C 语言中的三种输入函数,scanf()getchar()gets() 都是标准输入函数,比如在本文中使用的 getchar() ,但是在使用有一些不同。 [ 2 ] ^{[2]} [2]

    3.1 输入操作的原理

      在介绍输入函数之前,首先介绍输入操作的原理, 程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。所以我们在使用不同的输入函数时,要考虑在输入缓冲区是否会造成残留的现象。

    3.2 三种输入函数用法

      gets()用于从标准输入流stdin读入一个整行(以’\n’或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的’\n’从流中取出,但不写入数组。gets()不检查被写入的数组大小。

      getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。

      scanf()函数返回成功赋值的数据项数,出错时则返回EOF,与上面相同,scanf()函数返回的也是一个int型的数。

      因此getchar()常用于接收字符,而gets()常用于接受字符串,scanf()可用于接受字符也可以用于接收字符串。

    3.3 三种输入函数的注意事项

      首先要注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题。

      读取字符时
      (1) scanf()以 Enter 结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);
      (2) getchar()以 Enter 结束输入,不会舍弃最后的回车符。

      读取字符串时
      (1) scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符;
      (2) gets()以Enter结束输入(空格不结束),接受空格,会舍弃最后的回车符!

    所以当我们项读取一句话中的每一个字符的时候,往往使用 getchar() 而不使用 scanf(),因为一句话中是会出现空格的,如果使用 scanf() 会造成将一句话分首先读入第一个空格前的部分,其余部分会残留在输入缓冲区的情况,所以不适合。

      其次为了避免出现上述问题,必须要在读取输入前,清空缓冲区的残留数据,可以用以下的方法解决:
      (1) C语言里提供了函数清空缓冲区,只要在读数据之前先清空缓冲区就没问题了,即使用fflush(stdin)。某些编译器(如VC6)支持用 fflush(stdin) 来清空输入缓冲,但是并非所有编译器都要支持这个功能(linux 下的 gcc 就不支持),因为标准中根本没有定义 fflush(stdin),所以这种方法的移植性不是很好不建议使用;
      (2) 自己取出缓冲区里的残留数据,即使用 while ((c = getchar()) != EOF && c != '\n');,不停地使用getchar()获取缓冲中字符,直到获取的c是“\n”或文件结尾符EOF为止。

    3.4 举例说明

      使用 scanf()getchar()输入读入字符的示例如下所示

    #include <stdio.h>
    
    int main()
    {
            char char1, char2, char3, char4;
            scanf("%c%c%c%c", &char1, &char2, &char3, &char4);
            printf("%d %d %d %d\n", char1, char2, char3, char4);
    
            char c;
            int i;
    
            scanf("%c%d", &c, &i);
            printf("变量c的值是:%c\n", c);
            printf("变量i的值是:%d\n", i);
    
            // fflush(stdin);
            while ((c = getchar()) != EOF && c != '\n');
    
            char ch1, ch2, ch3, ch4;
            ch1 = getchar();
            ch2 = getchar();
            ch3 = getchar();
            ch4 = getchar();
            printf("%d %d %d %d\n", ch1, ch2, ch3, ch4);
            return 0;
    }
    

    执行上面的代码可以获得如下的结果
    在这里插入图片描述
    这里可以看到,对于输入 “a b”, scanf()将空格与回车符均作为输入,并且打印输出他们的 ascii 码;之后的 scanf() 没有打印输出空格的 ascii 码,是因为定义的输入是 int 型,所以没有将空格这个字符读入;getchar()获得的结果与 scanf()是一样的。

      其次可以看到我们在这里清楚了输入缓冲区中的残留,否则 getchar()会先读取缓冲区残留的回车,然后在读入键盘输入的部分;fflush(stdin)在 ubuntu 下不可用,所以注释掉了。

      使用 scanf()fgets()输入读入字符的示例如下所示

    #include <stdio.h>
    
    int main()
    {
            char str1[20], str2[20];
            printf("input is:");
            scanf("%s",str1); 
            printf("output is : %s\n",str1);    
            scanf("%s",str2); 
            printf("output is : %s\n",str2); 
    
            char c;
            while ((c = getchar()) != EOF && c != '\n');
            
            printf("input is:");
            char str3[20], str4[20];
            fgets(str3, 20, stdin); 
            printf("output is : %s\n",str3);    
            fgets(str4, 20, stdin); 
            printf("output is : %s\n",str4); 
            return 0;
    }
    

    这里有两点需要注意,首先 gets() 在 ubuntu 下事会报错的,所以在这里使用 fgets() 替代,其次由于 scanf 不会清除最后的回车符号,所以这里我们还是手动清除缓冲区残留,执行后的结果如下所示
    在这里插入图片描述
    所以建议使用fgets()读入字符串。

    参考

    [1] “小甲鱼” 视频课程《带你学C带你飞》【第一季】P13
    [2] hao5743《scanf()和getchar() 使用》
    [3] dophiJing CSDN 博客 《gets与scanf如何判断读取文件结束》
    [4] guanyasu CSDN 博客《C语言清空输入缓冲区》

    欢迎大家关注我的知乎号(左侧)和经常投稿的微信公众号(右侧)
    在这里插入图片描述

    展开全文
  • For、While循环语句

    2021-01-18 15:34:46
    While循环语句 While语句的格式 : while 判断条件(condition): 执行语句(statements) else: 执行语句(statements) 执行Gif演示: 案例:利用While计算1-100的总和 #利用Python计算1-100的总和 a...

     

    循环语句的控制结构图

    While循环语句

    While语句的格式 :

    while 判断条件(condition):
        执行语句(statements)
    else:
        执行语句(statements)

    执行Gif演示:

    案例:利用While计算1-100的总和

    #利用Python计算1-100的总和
    a=1
    sum=0
    while  a<=100:
        sum = sum + a
        a=a+1
    
    print(sum)
    
    结果:
    5050

    案例:无限循环

    我们可以通过设置条件表达式永远不为false来实现无限循环

    var=1
    while var == 1:  #表达式永远为true
        num = int(input("输入一个数字:"))
        print("你输入的数字是: ", num)
    
    print("good bye")
    

    while循环使用else语句:循环输出数字,并判断大小

    count=1
    while count<5:
        print(count,"小于5")
        count=count+1
    else:
        print(count,"大于等于5")
    
    结果:
    1 小于5
    2 小于5
    3 小于5
    4 小于5
    5 大于等于5
    

    For循环语句

    for循环可以遍历任何序列的项目,如一个列表/字符串......

    for的语句格式

    for <variable> in <sequence>:
        <statements>
    else:
        <statements>

    案例:打印language数组

    language=['English','Chinese','math']
    for x in language:
        print (x)
    
    结果:
    English
    Chinese
    math

    利用break跳出循环

    sites = ["Baidu", "Google","JD","Taobao"]
    for site in sites:
        if site == "JD":
            print("京东!")
            break
        print("循环数据 " + site)
    else:
        print("没有循环数据!")
    print("完成循环!")
    
    结果:
    循环数据 Baidu
    循环数据 Google
    京东!
    完成循环!
    

    Range()函数

    range([start],end,[step])

    遍历数字序列,可以使用内置的range()函数,生成序列

    for x in  range(5):
        print(x)
    
    结果:
    0
    1
    2
    3
    4
    
    #使用range(x,x)指定区间的值
    for x in range(1,5):
        print(x)
    
    结果:
    1
    2
    3
    4
    
    #使用range(z,z,z)指定区间并指定不同的增量
    for x in range(1,10,3):
        print(x)
    结果:
    1
    4
    7
    #结合range()和len()函数来遍历一个序列的索引
    a=['啾咪','三七','阔阔']
    for x in range(len(a)):
        print(x,a[x])
    
    结果:
    0 啾咪
    1 三七
    2 阔阔

    break和continue语句及循环中的else子句

    break语句可以跳出while和for循环体,如果你从for或while循环中终止,任何对应的循环else块将不执行

    continue语句被用来告诉python跳过当前循环块中剩余语句,然后继续进行下一轮循环

    break执行流程:

    continue执行流程:

    while语句代码执行过程:

    for语句代码执行过程:

    案例:while中使用break

    n=1
    while n <= 10:
        n=n+1
        if n==4:
            break
        print(n)
    print('循环结束')
    
    结果:
    2
    3
    循环结束

    案例:while中使用continue

    n=1
    while n <= 10:
        n=n+1
        if n==4:
            continue
        print(n)
    print('循环结束')
    
    结果:
    2
    3
    5
    6
    7
    8
    9
    10
    11
    循环结束
    

    案例

    for letter in 'JD.com':
        if letter == ".":
            break
        print(letter)
    print('循环结束')
    
    a=0
    while a<=10:
        if a==5:
            break
        a=a+1
        print(a)
    print('循环结束')
    
    结果:
    J
    D
    循环结束
    1
    2
    3
    4
    5
    循环结束

    案例:用于查询质数的循环例子:

    循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。

    for n in range(2, 10):
        for x in range(2, n):
            if n % x == 0:
                print(n, '等于', x, '*', n//x)
                break
        else:
            # 循环中没有找到元素
            print(n, ' 是质数')
    
    结果:
    2  是质数
    3  是质数
    4 等于 2 * 2
    5  是质数
    6 等于 2 * 3
    7  是质数
    8 等于 2 * 4
    9 等于 3 * 3
    

    pass语句

    pass是空语句,为了保证程序结构的完整性

    pass不做任何事情,一般用来做占位符

    for x in 'JD.com':
        if x == 'D':
            pass
            print('执行pass块')
        print(x)
    
    结果:
    J
    执行pass块
    D
    .
    c
    o
    m
    

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • While语句的简易使用方法作者:爱吃肉的小花生首先声明:写这些只是方便做着自己记忆和理解,如果能帮助到大家那当然更好不过while语句的框架:while 条件: #注意一定不要忘记有冒号哦循环体……如何停止循环停止...
  • 单片机C语言中的空语句

    千次阅读 2021-05-18 09:54:29
    标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在keil C51中,直接调用库函数:#include// 声明了void _nop_(void);_nop_...
  • 循环语句  循环语句在程序设计中用来描述有规则重复的流程。在实际的程序中,存在很多需要重复执行的流程,为了简化这些重复的执行流程,在程序设计语言中新增了该类语句。  在学习循环语句时,最重要的就是发现...
  • Python While 循环语句

    千次阅读 2018-01-24 18:55:59
    Python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为: while 判断条件: 执行语句……  执行语句可以是单个语句语句块。判断条件可以是...
  • Java的while语句

    千次阅读 2020-05-23 07:25:22
    循环是程序中的重要流程结构之一。 循环语句能够使程序代码重复执行,适用于...初始化语句(init statement): 一条或多条语句,这些语句用于完成一些初始化工 作,初始化语句在循环开始之前执行。 循环条件(te
  • for空语句怎么写

    千次阅读 2021-05-22 13:41:34
    1. for 语句怎么用for (表达式1;表达式2;表达式3) { 语句体 } 表达式1在循环开始时被无条件执行一次,然后开始执行表达式2,...3个表达式都可以为,表达式2为意味着将无限循环下去(和 C 一样,PHP 认为其值为...
  • 循环语句 (i)while (ii)for (iii)do while 循环语句三要素: 1.循环变量的初始化; 2.循环条件; 3.循环变量的更新语句 首先来看while循环,前面我们已经掌握了if语句:if(条件)语句;当天件满足的时候,就执行if后面的语句...
  • 原标题:Python中for循环语句while循环语句有何不同前面两期文章已经为大家分别讲解,for循环语句while循环语句,两种都是化繁琐为简单的Python循环语句,选择困难症已经不知道该用哪一个了。 作为Python循环...
  • 谈谈Python中的while循环语句

    千次阅读 2020-12-24 12:23:26
    前言python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组。循环里面还有两个比较重要的...
  • c源程序中能允许出现空语句吗发布时间:2020-07-16 09:19:27来源:亿速云阅读:156作者:Leah这期内容当中小编将会给大家带来有关c源程序中能允许出现空语句吗,文章内容丰富且以专业的角度为大家分析和叙述,阅读完...
  • python中的while语句的基本知识与实例

    千次阅读 2020-05-15 17:40:49
    本节实例: ...一.while语句 1.用法 执行语句可以是单个语句语句块。判断条件可以是任何表达式。 任何非零/非空的值均为True 当判断条件为假时,循环结束 用法如下 while 条件: 执行语句 2.实例 练习
  • 在 Python 语言中用来控制循环的主要有两个句法,while 和 for 语句,本节将简单介绍 while 句法的使用。 2.while结构 while 语句同其他编程语言中 while 的使用方式大同小异,主要结构如下 while condition: #当...
  • 循环语句while、do…while、for; 一、while while循环语句的语法结构是: 变量初始化 while(循环条件){ 循环体 } 循环条件是一个布尔表达式,它的值为布尔类型“true”或者“false”。 我们举个例子,用while...
  • python之while语句详解

    千次阅读 2020-04-15 17:03:39
    python之while语句详解1.基本介绍2. while语句练习2.1 求100以内所有奇数或偶数之和2.2 求100以内9的倍数之和,以及个数2.3 输出九九乘法表2.4 猜数字 1.基本介绍 (1)定义:Python 编程中 while 语句用于循环执行...
  • Shell语法—— while 条件语句

    千次阅读 2021-05-16 00:07:12
    while 循环语句while 循环语句语法格式为:while < 条件表达式 >do指令done有关脚本运行的相关用法命令说明sh file.sh &把 file.sh 脚本放到后台运行(后台运行脚本的常用方法)ctl+c停止执行当前脚本或任务...
  • do while循环语句的学习以及练习

    万次阅读 2019-04-23 20:53:40
    今天学的是do while循环语句, 先执行循环体,直到条件的表达式为false。 与while循环语句的区别: while语句先判断条件,满足时执行循环体。 do while语句先执行循环体,满足条件在执行 语法: do { 循环体 }while...
  • if语句if 条件语句:代码块其他语句(1)执行过程:先判断条件语句是否为True,若是True就执行代码块,再执行其他语句若是False,就执行其他语句(2)条件语句:看可以是任何有值的表达式,但一般是布尔值(3)if是关键字...
  • 循环语句形式分为:1.while循环  2.do-while循环  3.for循环 1.while语句:一般形式为: while(表达式) {  循环语句; } 特点:先判断表达式,再执行循环体。 2.do-while语句:一般形式为: do ...
  • python中if语句while循环语句的用法

    千次阅读 2019-04-07 15:26:07
    其实python中的if和while的使用和C语言中的if和while的使用并没有多大的差距,只不过在一些地方的的使用有所不同,相较之下python中的用法更为简便快捷些。 if语句 使用if语句要注意的还是缩进,if语句后面要加上...
  • 1.for语句的特例 需要强调的是,如果在for语句中没有循环条件,则认为...)相当于while(1)无限循环。 例1.2 for(;i<100;i++) ; 变形1 #include"stdio.h" int main() { int i = 1; for (; i < 100 ;) ...
  • ----------------------while(循环)控制语句------------------- while 循环语句 1,while循环的语法结构 while (布尔表达式) { //循环体 } 2,while的执行原理 先判断布尔表达式的结果 *true 执行循环体 *false ...
  • python 中的 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。当要求你在页面上打印5遍“Hello Python”,你可以写5行 print代码,但是如果要求打印100行,1000行呢,...
  • 【Java面试题】空语句的详解和运用

    千次阅读 2019-05-25 23:32:32
    空语句: 编程语言中语句都要进行一定的操作,但是java中有一种语句什么也不执行,这就是空语句空语句是有一个分号(;)组成的语句。 空语句是什么也不执行的语句。在程序中空语句通常用作空循环体。举个例子:...
  • do while语句是先执行一次do语句中的内容,接着判断while语句中的内容不成立时就不再执行do语句了,否则循环执行do语句,最后的while小括号后边要加分号 #include <stdio.h> main(){ int x,max; printf(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 253,575
精华内容 101,430
关键字:

while空语句