zoukankan      html  css  js  c++  java
  • C 语言——循环

    • 顺序执行语句序列
    • 在满足某个条件之前反复执行一个语句序列(循环)
    • 通过进行一个判断在两个可选的语句序列之间选择执行(分支)

    一.while循环

     1.while循环是一个入口条件循环,即先进行条件判定在决定是否执行while语句,条件为真则执行,否则反之。

     2.当您构造一个while循环时,循环中必须包含能改变判断表达式的值最终变为假。否则循环永远不会停止。

    /*输入系列数并求和*/
    int
    n; int sum=0; printf("Please enter some number:"); while((scanf("%d",&n))==1) //C语言风格 { sum += n; //相当于sum=sum+n; } printf("%d",sum);

     已知scanf()函数返回读入项目的个数,如果您输入一个非数字,那么scanf()返回0,条件判断为假,循环则终止。

     3.判断条件中使用的是关系运算符,它们不能用来比较字符串。用于浮点数的时候只能用<和>。因为舍入误差可能导致两个数不想等,例如:3和1/3的乘积应该是1.0,如果您用6位小数表示1/3,成绩就是.999999而不等于1.

     4.在c中,更一般的来说,只要非零值都被认为真,只有0被认为是假。当然,关系表达式为真,则值为1,为假,则为0.

    while(goats!=0)可被while(goats)取代,作为C程序员您应该熟悉后者表达。它们都是只有在goats值为0时才为0或假。

     5.计数循环:它们循环执行预先确定的次数。

    • 必须初始化一个计数器
    • 计数器与某个有限的值进行比较
    • 每次执行循环,计数器的值都要递增。
    const int number=10;
        int count=1;
        while(count<=number)
        {
            printf("#");
            count++;
        }                      //循环执行10次,当count增加到11时退出循环,此时输出结果为“##########”(10个)

    二.for循环

            for循环也是入口条件循环。

    for(初始化;判断;更新)

    statement

    初始化只在循环开始前执行一次,其后不在执行;然后判断,结果为真,则执行一次循环;再接着计算更新值,接着再检查判断执行语句。

    在每个表达式中可以添加逗号使用多个初始化或更新表达式。

    您也可以直接为:

    for(;;)
            printf("I am student.
    ");

    中间的那个控制表达式为空将被认为是真,所以循环会永远执行。

     

    涉及到初始化和更新变量、索引计数的循环时使用for循环较为恰当,其他条件下使用while循环好一些。

    三.退出条件循环:do while

    do{
            statement
        }while(判断);      //特别注意最后的(;)符号

    先执行一次,再进行判断,为真,则返回继续执行,为假,退出循环。

    四.嵌套循环

    • 通常使用嵌套循环来按行按列显示数据,内循环处理一个行中的所有列,外循环处理所有行。
    #include <stdio.h>
    #define ROWS 6
    #define CHARS 10
    int main(void)
    {
        int row;
        char ch;
        for(row=0;row<ROWS;row++)            //外循环处理所有的行  
        {
            for(ch='A';ch<('A'+CHARS);ch++)  //内循环处理每一个行中的所有列
            {
                printf("%c",ch);
            }
            printf("
    ");                    //使得每个列换行,在内循环外,外循环内
        }
        return 0;
    }//内部循环在外部循环的每次单独循环中都完全执行它的所有循环

    输出结果:

    • 嵌套变化

     通过使内部循环的一部分依赖于外部循环,可以使内部循环在每个周期中的表现不同

    const int ROWS=6;
        const int CHARS=6;
        int row;
        char ch;
        for(row=0;row<ROWS;row++)
        {
            for(ch=('A'+row);ch<('A'+CHARS);ch++)  //使内部循环的开始字符依赖于外部循环的循环次数
                printf("%c",ch);
            printf("
    ");
        }

     输出结果:

    五.初试数组

    一个数组就是线性存储的一系列相同类型的数。

    字符数组,但不是字符串

    即是字符数组,又是字符串

              

    假设我要进行10个数的求和,使用数组的方法则是:

    #include <stdio.h>
    #define SIZE 10
    int main(void)
    {
        int index,num[SIZE];
        int sum=0;
    for(index=0;index<SIZE;index++) scanf("%d",&num[index]); //读入10个数,即使你多输入了几个数,数组还是只读入10个数,因为他的大小只有10
    printf(
    "The number as follows: ");
    for(index=0;index<SIZE;index++) //验证输入 printf("%5d",num[index]);
    printf(
    " ");
    for(index=0;index<SIZE;index++) //求和 sum +=num[index];
    printf(
    "The sum of these number is:%d",sum); return 0; }

     下面代码可以很方便处理一个大小为SIZE的数组

    for(index=0;index<SIZE;index++) //数组下标从0开始到SIZE-1

     六.使用函数返回值的例子

    #include <stdio.h>
    double power(double n,int p);    //函数原型
    int main(void)
    {
        double x,xpow;
        int exp;
        printf("Please enter:
    ");
        while(scanf("%lf%d",&x,&exp)==2)
        {
            xpow=power(x,exp);       //函数调用,并传递给它两个值
            printf("%.3g to the power %d is %.5g
    ",x,exp,xpow);
            printf("Please enter:
    ");
        }
        printf("bye!
    ");
        return 0;
    }
    double power(double n,int p)     //形式参量n,p接受调用函数的实际参数x,exp的传递赋值
    {
        double pow=1;
        int i;
        for(i=1;i<=p;i++)
            pow*=n;
        return pow;                  //返回double类型的pow值赋值给xpow
    }

     声明函数、调用函数、定义函数、使用return关键字,这些是定义并使用具有返回值的函数时的基本要素。

     

    七.循环注意:

    • 明确定义结束循环的条件。
    • 确保循环判断中使用的值在第一次使用之前已经初始化。
    • 确保循环在每个周期中更新了判断值。
  • 相关阅读:
    面向对象编程思想-单例模式
    Bootstrap(四):CSS--表格
    Bootstrap(三):CSS--代码
    Git 学习第三天(一)
    Git 学习第四天
    Git 学习第二天(三)
    Git 学习第三天(二)
    Git 学习第二天(一)
    GIT 学习第二天 (二)
    Git 学习第一天
  • 原文地址:https://www.cnblogs.com/mutouyky/p/8283932.html
Copyright © 2011-2022 走看看