精华内容
下载资源
问答
  • 本文主要介绍C语言while 语句,这里对while 循环做详细讲解,并提供示例代码,希望能帮助学习C语言的同学
  • 在这里,对于while循环,首先执行c = getchar(),它读入一个字符,然后执行c != ‘"’,判断字符c 是否等于引号,如果满足c != ‘"’,则执行while循环体,如果不满足则不执行循环体。 再举一个简单的例子, while...

    引言

    今天在刷算法题的时候,遇到点儿问题:

    对于如下的m组数据:

    name "David Beckham"
    email "david@beckham.com"
    

    需求是把前者替换成后者,举个例子,遇到name,就把它替换成David Beckham(并且没有引号),所以我需要用hash表把它们的映射关系存起来。

    可是问题来了。

    这样的数据我该怎么读入呢?

    对于name,我可以用cin, 可以后面“ ”内的内容还包括空格,这该如何处理呢? 用cin不行,因为cin用空格作为分隔符;用stringstream也不行,因为它也是按照空格切分的。

    解决方法

    最后的解决方案是利用getchar,一个字符一个字符的读!!

    具体代码如下:

    
    while(m -- ){
     string key, value;
     cin >> key; // 读入前者
     char c;
     //  读掉name 和“” 之间的空格,以及第一个引号
     while(c = getchar(), c != '\"'); 
     // 读入“ ”之间的内容,遇到第二个引号停止读入
     while(c = getchar(), c != '\"') value += c;
     hash[key] = value;
    }
    
    

    这种处理方法很好地解决了我的需求。

    下面简单地介绍一下上述代码中while(___, _____)这种用法

    以它为例:

     while(c = getchar(), c != '\"'); 
    

    逗号表达式:从左往右读,并且以最后一个值作为结果。
    在这里,对于while循环,首先执行c = getchar(),它读入一个字符,然后执行c != ‘"’,判断字符c 是否等于引号,如果满足c != ‘"’,则执行while循环体,如果不满足则不执行循环体。

    再举一个简单的例子,

    while(cin >> n , n){
    	...
    }
    

    这里while循环也用到逗号表达式,先执行cin >> n, 读入一个数值n,然后第二个表达式,判断n是否为0,如果满足第二个表达式(不为零),则继续读入;

    这种常用来读入:数据以0结尾。

    总结

    怎么读入引号具体的值? 具体要求是舍弃引号,并且引号内部有空格。

    采用getchar来读:

    string value;
    char c;
    while(c = gechar(), c != '\"'); //过滤掉第一个引号,以及前面的东西
    while(c = getchar(), c != '\"') value += c; //读入第二个引号之前的字符
    

    逗号表达式
    依次从左往右执行,以最后一个表达式的值为结果。

    对于引言中题目,有兴趣的读者可以尝试一下,是一道字符串处理题,本身不难。CSP认证201509-3 模板生成系统[C++题解]:字符串处理、模拟、哈希表、引号里面有空格的字符串怎么读入

    展开全文
  • C语言函数while用法

    千次阅读 2020-06-13 15:56:20
    while(1)的用法 while(1);{…} 意义:重复执行里面的代码。 用途: 调试代码时,用来检测一部分代码是否OK,防止后面的代码干扰执行结果,会在观测点加上while(1); 有些代码检测到运行错误时,会抛出错误(打印、...

    while(1)的用法

    while(1);{…}
    意义:重复执行里面的代码。
    用途:

    1. 调试代码时,用来检测一部分代码是否OK,防止后面的代码干扰执行结果,会在观测点加上while(1);
    2. 有些代码检测到运行错误时,会抛出错误(打印、设置错误码),然后进入while(1);
    3. 创立菜单界面的循环。
    void Mainmenu(){
        char choice;
        while(1){            
            system("color f2");         
            system("cls");          //加上这个就不会清空屏幕就不会一直打印下去 
            printf("\n\n\n\n\n\n\n");
            printf("                                   ");
            printf("      <成  绩  管  理  系  统>     \n");
            printf("                                   ");
            printf("           <Version 1.0>           ");
            printf("\n                                   ");
            printf("# * * * * * * * * * * * * * * * * #\n");
            printf("                                   ");
            printf("<          1:管理员注册           >\n");
            printf("                                   ");
            printf("<          2:管理员登录           >\n");
            printf("                                   ");
            printf("<          3:学生注册             >\n");
            printf("                                   ");
            printf("<          4:学生登录             >\n");
            printf("                                   ");
            printf("<          5:管理员找回密码       >\n");
            printf("                                   ");
            printf("<          6:用户找回密码         >\n");
            printf("                                   ");
            printf("<          #:退出系统             >\n");
            printf("                                   ");
            printf("# * * * * * * * * * * * * * * * * #\n");
            printf("                                   ");
            printf("请输入你的选择 : ");
            choice=getchar(); //后面代码笔者就省略了
            }
     }
    
    展开全文
  • C语言中do while用法

    2020-12-02 10:22:58
    C语言中do while与while与for循环用法 while循环的用法 while循环的结构如下 while (表达式){ 语句 }; 当表达式为真,执行下面的语句。语句执行完之后再判断表达式是否为真,若是真则继续执行下面的语句。...

    C语言中do while与while与for循环用法

    while循环的用法

    while循环的结构如下

    while (表达式){
        语句
    };

    当表达式为真,执行下面的语句。语句执行完之后再判断表达式是否为真,若是真则继续执行下面的语句。反之跳出循环。

    do while循环的用法

    do while循环的结构如下

    do{
        语句
    }while(表达式);
    
    

    do while循环与while循环的不同是:先执行一次语句,再判断表达式是否为真,然后决定是否再执行一次语句或者跳出循环。

    for循环的用法

    for循环的结构如下

    for (语句一,语句二,语句三){
        语句四
    };
    
    /***************例子***************/
    int i;
    for (i=0,i<3,i++){
    printf("hello %d\n");
    } //即打印三次hello

    其中语句一为单次表达式,语句二为条件表达式,语句三为末尾循环体。语句四为循环体。

    先根据for循环()中的语句判断条件是否满足,如果满足执行循环体语句,反之则跳出循环。

    展开全文
  • 4.1.2 while循环流程图对于while循环:可以把while循环理解为:当所给出的条件满足时,就会不断的重复循环体内的语句;不满足条件时,直接略过循环体执行后续语句。条件成立是循环继续的必要条件。循环体内要有改变...

    C语言

    和我一起学C吧 a2209935d75efe4ecf233b96deac26c7.png

    瞬息万变的只是服务对象。

    4.1.2   while 循环

    流程图

    90c6f14e531451e35623425637b6e0b3.png

    对于while循环:
    • 可以把while循环理解为:当所给出的条件满足时,就会不断的重复循环体内的语句;不满足条件时,直接略过循环体执行后续语句。

    • 条件成立是循环继续的必要条件。

    • 循环体内要有改变条件的机会,才能让循环得以继续。

    在上一笔记有给出用whlie循环来判断任意正整数的位数代码,可以自己书写代码来理解while的用法。在此为了让读者更容易理解,以下是对应代码的算法:
    • 用户输入x;

    • 始化n为0;

    • X=x/10,去掉个位;

    • n++;

    • 如果x>0,回到3;

    • 否则n就是结果。

    4.1.3   do-while 循环

    流程图

    623b957923ed7cafe342a6d3a767892c.png

    结构式:do{        }while();与whlie循环不同的是,在进入循环后,不进行条件判断而是直接执行完一轮循环体的代码后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。与之相同的是,do-while循环,条件满足时执行循环,条件不满足则结束循环,进入后续语句。以下是do-while执行的代码(调试),也是判断位数:

    1a4ddb5c54ae056bf49515042f417c77.png

    4.1.3   for 循环

    从例子学知识:

    阶乘

    • n!=1×2×3×4×...×n

    • 写一个程序,让用户输入n,然后计算输出n!

    • 变量:

      显然读用户的输入需要一个int的n,然后计算的结果需要用一个变量保存,可以是int的factor,在计算中需要有一个变量不断地从1递增到n,那可以是int的i。

    显然,这需要用到循环语句来解决,前面有学到while,那么我们用while循环来写出这段代码:

    bcfbb2896d1db26bab70926f9705611b.png

    对于for循环,我们先写出它的基本格式:

    for意为  对于。

    for(count=1;count>0;count...)

    • 第一个表达式 count=1: 表示 初始条件;

    • 第二个表达式 count>0: 表示 使循环继续的条件;

    • 第三个表达式 count...: 表示 循环每轮要做的动作。

    以上就读成:对于一开始的count=1,当count>0时,重复做循环体,每一轮循环在做完循环体内语句后,使得count...。,for循环的代码如下:

    3fc67b53b2c420758b3d9ca259257726.png

    注:

    • 做求和的程序时,记录结果的变量应该初始化为0;而做求积的变量时,记录结果的变量应该初始化为1。

    • 循环控制变量i只在循环里被使用了,在循环外没有用处,因此,可以将变量i的定义写到for语句里面:

      e27fc890910211501b64cccd62110d2d.png

    会出现错误,错误原因如上。因此只能在C99条件下才能把i的定义写进for循环里,不能省掉。while、do-while与for
    • 如果有固定次数,用for;

    • 如果必须执行一次,用do-while;

    • 其他情况用while。

    ENDf9f6285119733783279f67c89e03d14b.pngf6c6a1e023c349e21a898c5f0a94b4f7.pngda314e0063cef9eb90119fed08bea4ae.gif0af3347f2be0cbfe058eec0139e5ec37.png

    可爱的你一定会

    扫一扫它吧❤

    展开全文
  • 循环控制语句goto语句和if语句构成循环while语句do...while语句for语句 goto语句和if语句构成循环 goto语句的一般形式: 形式一 形式二 goto 语句标号—— – ````````````````````````… … |– ...
  • 答:只需搜索公众号"51单片机学习网"免费关注for 语句是我们今后编程的一个常用的语句,这个语句必须得学会其用法,它不仅仅可以用来做延时,更重要的是用来做一些循环运算。for 语句的一般形式如下: for( 表达式1;...
  • C语言中if,while, do-while和for循环用法 if 循环 if(条件成立){ …; } else { 条件不成立; } 一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干...
  • while后面的循环体加上null,是不是表示指向一个空语句,即循环体没有内容呢?
  • -循环语句分析  循环语句的基本工作方式 - 通过条件表达式判断是否执行循环体 - 条件表达式循环if语句表达式的原则 do、while、for的区别 - do语句先执行后判断,... - while语句先判断后执行,循环体可能不...
  • while循环语句; do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;for语句:循环,可替代while语句; 只是用法不同;break语句跳出本层的循环;(只调处包含此语句的循环)continue语句:继续(一般放到...
  • 循环 : 多次执行同一段程序 for(表达式1; 表达式2; 表达式3) { 语句块1 } 表达式1:初始化,有且执行一次,最早被执行 表达式2:判断,如果为真,循环继续,为假循环结束,每次进入时都需要执行 表达式3:步进,修改循环变量的...
  • C语言for语句用法详解

    千次阅读 2018-09-14 15:22:00
    C语言中,for语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为: for(表达式1; 表达式2; 表达式3) 语句 它的执行过程如下:先求解表达式1。 求解表达式2,若其值为真(非0),则执行for语句中指定...
  • 循环程序设计目标要求掌握C语言while循环用法掌握C语言中do-while循环用法掌握C语言中for循环的用法掌握并能熟练地运用循环的嵌套设计掌握break语句和contiue语句控制循环的方法 第5章?循环程序设计讲课提纲...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 293
精华内容 117
关键字:

c语言while循环用法

c语言 订阅