第七章:C语言循环

Posted 歌咏^0^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章:C语言循环相关的知识,希望对你有一定的参考价值。

  •     goto语句与if构成的循环
  •     while
  •     do~while
  •     for

一、goto 语句:   无条件跳转语句

格式:
    语句标号:(再要跳转到的位置添加)

    goto  语句标号; //此时程序将会直接跳转到语句标号的地方开始执行

  "语句标号":在C语言中,把一个名字(C标识符)与某一行的地址相关联。
                   格式为在一行的开始处定义一个名字,然后再加一个冒号
例:

    loop:
    n++;
    goto loop;
 

作用:
             (1)与if语句向上跳转构成循环结构
             (2)向后跳转可以跳出多重循环体等语句

多用于跳出多层循环

注意:
1、goto本身没有任何问题,但是goto语句是无条件跳转语句,应用太灵活,会使程序的可读性变差,应限制使用
2、goto语句只能够在函数内进行跳转,不可以跨越函数跳转。
3、goto语句一般用于代码出现异常时,直接goto跳转到异常处理的代码处。比如说多层循环嵌套执行时出现异常,则直接跳出。


二、while


流程: 表达式的值  --> 真  -->  执行循环体   --> 表达式的值  --> 假  --> 跳出循环

   (1)
    while(表达式)//表达式的值为真(非0)时,进入循环体;为假时,跳出循环体
    {
        循环体
    }

(2)死循环
    while(1)
    {
        循环体
    }
    等价于
    while(1);    //没有循环体


(3)如果循环体只有一条语句,可以使用下列格式:
    while(1)
        printf("11\\n");    

编程建议:不管while后面有没有语句,请先写一个{},再到{}里面填内容


三、do{}while

do while循环的特点:无论判定条件是否为真,至少会执行一遍循环体

流程:执行一遍循环体--》判断表达式的值--》(非0)真--》再次执行循环体--》判断表达式的值--》假(0)--》跳出循环

(1)循环判定条件
    do{
        循环体;
    }while(表达式);        ---》注意:表达式后有一个分号 ;


(2)死循环
    do{
    
    }while(1);
 

   
四、for

(1)判定条件
for( 初始化语句表达式1; 判断语句表达式2; 循环操作语句表达式3)
{
    循环体
}
 流程:初始化语句  -->  判断条件   --> 真  --> 循环体  --> 循环操作  --> 判断条件  --> 假  --> 跳出循环

(2)死循环
    for( ; ; );
    或者
    for( ; ; )
    {
    }

注意:
1、for循环中 的表达式123都可以为空,表达式2为空表示判断条件永远为真。while的表达式不能为空。
2、while循环与for循环的区别:一般来说,while更注重循环条件,for更注重循环次数。 当然它们是可以相互替换的。

五、循环的嵌套

    int i,j,a=0;
    for(i=0;i<5;i++)//外循环
    {
        for(j=0;j<4;j++)//内循环
        {
            printf("%d %d %d\\n",i,j,a++);
        }
    }

六、break关键字 


    1)break关键字只能用于循环(while  for   do...while)和switch语句,表示结束循环或者跳出switch语句
    2)break关键字只能跳出最近一层的循环,也就是说,如果有多重循环,只能跳出最靠近break语句那层循环
    3)break关键字 不能 单独用于 if语句中,除非if语句外面包含了循环


七、continue关键字


    1)continue关键字只能用于循环体中(while do...while  for),用于提前结束当前这一次循环,重新执行下一次循环
    2)continue关键字不能 单独用于 if语句或者switch 语句中,除非外面包含了循环

=====================================================================

#include <stdio.h>

int main()
{
    float money = 0;
    float k = 0;
    int i = 0;
    int ret = 0;

    while(1)
    {
        printf("*************************************\\n");
        printf("请输入小张的营业额\\n");

        ret = scanf("%f", &money);

        if(money < 0 || 0 == ret)
        {
           printf("输入错误,请重新输入\\n\\n");
           while('\\n' != getchar());
           sleep(1);
           continue;
        }

        if(money < 10)
        {
            i = 1;
        }
        else if(money < 20)
        {
            i = 2;
        }
        else if(money < 40)
        {
            i = 3;
        }
        else if(money < 60)
        {
            i = 4;
        }
        else if(money < 100)
        {
            i = 5;
        }
        else 
        {
            i = 6;
        }
    
        switch(i)
        {
            case 1: k = 0.1;
                break;
            case 2: k = 0.075;
                break;
            case 3: k = 0.05;
                break;
            case 4: k = 0.03;
                break;
            case 5: k = 0.015;
                break;
            case 6: k = 0.01;
                break;
            default:
                break;
        }
        printf("他需要提交的加盟费为:%.3fw\\n\\n", k*money);
        sleep(1);
    }

    return 0;
}

以上是关于第七章:C语言循环的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

C#VS快捷键

C#VS快捷键

C#VS快捷键

C#VS快捷键

C++_第七章函数的基本知识_求阶乘的子函数_ 函数参数类型为数组_ 求数组内所有元素和部分元素和的方法_实现了先从键盘输入到一个数组中,再用for循环取读出数组中的元素 for循环也可以用bre(