精华内容
下载资源
问答
  • 下面是我设计的模块的一部分,仿真的时候发现if语句循环出现问题,比如data从0跳变为1,times的值会一直加到3,src也变成了0000000100010001。求教这里敏感性列表里data只变化了一次为什么if语句的循环条件会判断这么多...
  • C语言while循环语句 do while语句 for循环语句

    万次阅读 多人点赞 2019-06-10 14:17:53
    一、循环结构的思想及意义: 知道了循环结构,那么在生活中也一样,我们每天都在重复做着相同的事情,例如:吸气呼气的过程;又如夏天开电扇,电扇一圈一圈的转,这都是在重复。现在大家玩个游戏,一个人A来说一个人...

    一、循环结构的思想及意义:
    知道了循环结构,那么在生活中也一样,我们每天都在重复做着相同的事情,例如:吸气呼气的过程;又如夏天开电扇,电扇一圈一圈的转,这都是在重复。现在大家玩个游戏,一个人A来说一个人B来做,一个人A说命令“敬礼,礼毕”,另一人B做动作十遍;第一种思维那就是说一下命令就让B执行动作,B执行完动作后,A再继续说命令,B再继续做动作,同样的事情重复十遍。如果利用所学的知识,让你输出十遍“敬礼,礼毕”,你会怎么写程序呢?

    /* 输出敬礼礼毕十遍 */
    #include "stdio.h"
    void main()
    {
        printf("1.敬礼、礼毕\n");
        printf("2.敬礼、礼毕\n");
        printf("3.敬礼、礼毕\n");
        printf("4.敬礼、礼毕\n");
        printf("5.敬礼、礼毕\n");
        printf("6.敬礼、礼毕\n");
        printf("7.敬礼、礼毕\n");
        printf("8.敬礼、礼毕\n");
        printf("9.敬礼、礼毕\n");
        printf("10.敬礼、礼毕\n");    
    }
    

    那A要让B说一万遍呢,显然如果还是用上面的程序来写的话,那么今天你一个小时不用做别的了,你就在这里慢慢复制粘贴吧!所以肯定有好的办法:A应该对B说执行命令动作“敬礼、礼毕”十遍。同样的问题大家来看第二段程序代码:

    /* 输出敬礼礼毕十遍 */
    #include "stdio.h"
    void main()
    {
    	int i;
    	i=1;
        while(i<=10)
    	{
    printf("%d.敬礼、礼毕\n",i);
    i=i+1;
    	}   
    }
    

    二、while的基本格式
    while的基本格式:(流程图如右图所示)
    while(表达式)
    {
    语句1;
    ……
    语句 n;
    }
    其中表达式代表了循环条件,整个复合语句为循环体。
    while语句规范:
    1:{和}自成一行
    2:语句1—语句n自动缩进
    while循环属于当型循环,也就是先判断表达式的值是否为真的(也可以理解为条件是否成立),若为真则循环,否则退出循环。
    它的格式变形如下;
    表达式1;
    while(表达式2)
    {
    语句;
    表达式3;
    }
    其中表达式1代表了程序循环前的初始值,表达式2代表了控制条件,表达式3代表了增量变化
    拿输出1到100为例分析。
    最初始的值(假设变量为i)应该是i=1;条件是i<101(或i<=100);语句是输出相应的变量值 printf(“%d ”,i);而表达式3应该是输出一个后进入下一个数,也就是i++;
    所以它的代码也就很容易就出来了:

    void main()
    {
        int i;
        i=1;
        while(i<101)
    {
      printf(“%d ”,i);
      i++;   
    }
    }
    

    do—while循环语句
    do–while语句
    在循环中有当型循环,还有直到型循环。接下来我们就来学习下直到型循环。
    一、do—while语句格式
    1.do—while语句格式1
    表达式1;
    do
    {
    语句;
    表达式3;
    } while(表达式2);
    其中表达式1代表了程序循环前的初始值,表达式2代表了控制条件,表达式3代表了增量变化
    这种格式在程序中已经很少用了。主要应用于下种变形格式:
    2.do—while语句格式变形
    do
    {
    语句;
    } while(条件表达式);
    二、do-while语句的思想及意义
    do英文翻译成中文是做的意思,那么从上面的结构我们也能看出,do语句后判断条件表达式,如果条件还表达式成立,再次执行语句,直到条件表达式不成立,往下继续执行。所以do—while的中心思想是至少执行一次循环语句。
    三、do-while循环结构实例
    下面我们一些操作实例来讲解循环结构的逻辑思维过程。
    1.求1+2+3+4±—+100和是多少?
    (1)步骤1,首先我们应该分析的是,我们要求一个数即和,那么和初值是几呢? sum=0
    (2)sum+=1;
    (3)sum+=2;
    (4)sum+=3;
    (5)假如我们如一个变量i来代表值的变化的话那么我们应该也能推算去,求和其实就是
    (6)sum+=i;只是i要从1变化到100
    (7)while代码参考代码如下

    /*求1+2+3+---+100的和*/
    #include "stdio.h"
    void main()//求各
    {
    	//定义变量并初始化
    	int i=1;
    	int sum=0;
    	while(i<=100)  //条件表达式
    	{
    		sum+=i;
    		i+=1; //步长
    	}	
    	printf("和是%d",sum);
    }
    

    (8)do–while代码参考代码如下

    /*求1+2+3+---+100的和*/
    #include "stdio.h"
    void main()//求各
    {
    	//定义变量并初始化
    	int i=1;
    	int sum=0;
    	do
    	{
    		sum+=i;
    		i+=1; //步长
    	}	while(i<=100); //条件表达式
    	printf("和是%d",sum);
    }
    

    2.输入qq的密码;输入正确则显示登录成功,否则可以一直输入密码直到对为至,假设密码为123456
    (1)那么我们分析题目,应该是先输入后判断的一种循环方式,那么应该选择do—while语句
    (2)程序中要求我们输入密码,密码可以变,所以要给密码定义成一个变量,我们假设int password;
    (3)因为密码是输入的,所以没有初始值
    (4)输入密码以后我们应该判断密码是否和默认密码相同
    (5)相同则登录成功
    (6)不相同则重新
    (7)do–while代码参考代码如下

    /*判断qq密码*/
    #include "stdio.h"
    void main()//登录
    {
    	//定义变量并初始化
    	int password;
        do	
    	{
    		printf("请输入qq登录密码:");
    		scanf("%d",&password);
    	}while(password!=123456);  	//条件表达式
    	printf("登录成功");
    }
    

    (8)do—while语句是可以被while()替换,其实循环之间的语句都可以相互替换,哪种方法更适合你,就选那种,也就是说一定要有一种是自己专长的。

    (9)参考代码如下
    /*登录*/
    #include "stdio.h"
    #include "stdlib.h"
    void main()//登录
    {
    	//定义变量并初始化
    	int password;
        while(1)
    	{
    		printf("请输入qq登录密码:");
    		scanf("%d",&password);
    		if(password==123456)
    		{
    			printf("登录成功");
    			break;
    			}
    	}
    	
    }
    

    3.while 与do—while的相同与不同总结?
    (1)while 语句是先计算表达式的值,再执行循环体,do…while是执行完一次循环体,再计算表达式的值
    (2)当表达式的值第一次为假时,while的循环体一次都不执行,do…while则执行一次循环体;
    (3)当表达式的值为真时,两者无区别
    (4)在不确定条件次数的情况下,程序一般用while比较多

    for循环语句
    for 循环为当型循环。for循环最容易实现计数控制循环方法。for循环的使用最为灵活,且适合应用在循环次数确定的情况下。
    for循环的思想是,先分析清楚循环的初始值,循环的控制条件,循环变量的步长变化,然后直接把语句再写到for的循环体里即可,这样可以让问题想的很清楚,流程也很清楚。
    二、for循环语句的应用
    for语句是c语言所提供的功能更强,使用更广泛的一种循环语句。
    1.for语句的一般格式
    (1)第1种情况
    for(表达式1;表达式2;表达式3)
    语句;
    (2)第2种情况
    for(表达式1;表达式2;表达式3)
    {
    语句块;
    }
    2.for语句的注意事项
    (1)各表达式之间分号不能省略
    (2)表达式1与表达式2与表达式3均可省略,一般是不省略的。
    ①当表达式1省略时,相当于省去了为循环变量赋初值,此时应在for语句之前给循环变量赋初值
    ②当表达式2省略时,表示不判断循环条件,也就是认为表达式2始终为真, 这时应在循环体内设法结束循环,否则将成为死循环
    ③当表达式3省略时,即省去修改循环变量的值,但此时应在循环体内设法结束循环
    (3)虽然说表达式可以省略,但是在使用for时,还是要正常使用的,也就是该有的都有。
    三、for的逻辑思维过程
    for语句和while语句一样,它的思想是在做循环之前,也是先有一个初值表达式1,然后判断条件表达式2是否成立,如果成立就执行{}里的语句然后跳转到表达式3,表达式3再跳转到表达式2,再次判断表达式2,如若成立再次,执行{}里的语句语句然后跳转到表达式3,表达式3再跳转到表达式2,如果成立就再重复执行,如果不成立就退出循环。
    for的流程图走向和while语句一模一样,但是for的思维过程,可以直接先分析从第一次开始执行,执行条件是什么,步长是多少,然后执行的语句是什么,套用for的结构即可。

    展开全文
  • C++ for循环语句

    2017-02-07 12:03:34
    C++中的for语句使用最为广泛和灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。 for语句的一般格式为: for(表达式1; 表达式2; ...
    C++中的for语句使用最为广泛和灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。

    for语句的一般格式为:
    for(表达式1; 表达式2; 表达式3)  语句

    for语句执行过程如下:

    1. 先求解表达式1。
    2. 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。
    3. 求解表达式3。
    4. 转回上面第(2)步骤继续执行。
    5. 循环结束,执行for语句下面的一个语句。

    可以用图3.14来表示for语句的执行过程。


    图 3.14

    for语句最简单的形式也是最容易理解的格式如下:
    for(循环变量赋初值; 循环条件; 循环变量增值)  语句
    例如:
    for(i=1;i<=100;i++)  sum=sum+i;
    它相当于以下语句:

    复制纯文本新窗口
    1. i=1;
    2. while(i<=100)
    3. {
    4. sum=sum+i;
    5. i++;
    6. }
    i=1;
    while(i<=100)
    {
        sum=sum+i;
        i++;
     }

    显然,用for语句简单、方便。

    for语句的使用有许多技巧,如果熟练地掌握和运用for语句,可以使程序精炼简洁。

    关于for语句的几点说明:

    1. for语句的一般格式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。
    2. 如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。
    3. 表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。
    4. 可以省略表达式1和表达式3,只有表达式2,即只给循环条件。
    5. 3个表达式都可省略。
    6. 表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。
    7. 表达式一般是关系表达式(如i<=100)或逻辑表达式(如a<b && x<y),但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。

    C++中的for语句比其他语言中的循环语句功能强得多。可以把循环体和一些与循环控制无关的操作也作为表达式1或表达式3出现,这样程序可以短小简洁。但过分地利用这一特点会使for语句显得杂乱,可读性降低,建议不要把与循环控制无关的内容放到for语句中。

    展开全文
  • 4.1任务1:打印数字(时间:25分钟) 4.1.1 任务描述 编程求一个四位自然数ABCD,它乘以A后变成DCBA。 4.1.2 任务目的 逐渐建立使用循环进行编程的思路:寻找...掌握while,do-while,for循环语句结构和执行流程

    4.1任务1:打印数字(时间:25分钟)
    4.1.1 任务描述
    编程求一个四位自然数ABCD,它乘以A后变成DCBA。
    4.1.2 任务目的
    逐渐建立使用循环进行编程的思路:寻找规律;写出循环体中需要重复操作的部分,其中包括改变修改变量值的语句;确定循环判断条件;完善循环结构,定义循环变量;完善整体程序,添加输入输出操作。
    掌握while,do-while,for循环的语句结构和执行流程。
    复习面向过程编程的编程思路。
    4.1.3 任务要求
    分别使用while,do-while,for循环完成此任务,
    添加适当的注释信息。
    给出人性化的输入输出提示信息。
    4.1.4 难点提示
    注意循环体中语句的顺序,先进行相关条件判断再进行其它操作。
    注意循环语句中的循环判断条件应为逻辑或关系表达式。
    注意在循环体中应有使循环结束的设置,即有改变循环变量的值的操作。
    4.2任务2:查找数字(时间:25分钟)
    4.2.1 任务描述
    编写一个程序,从键盘上接收一个整数,并且从1-100之间找到能被它整除的整数,并输出找到的整数。
    4.2.2 任务目的
    复习关系和逻辑表达式的使用。
    掌握如何使用while、do-while、for循环完成上面要求。
    建立使用循环完成面向过程编程的思路。
    4.2.3 任务要求
    要求分别使用while和for循环完成此任务。
    使用关系、逻辑运算符与if语句结合使用完成查找判断。
    4.2.4 难点提示
      注意: 能被整除的意思是:除以从键盘上接收的整数,判断余数是否为0。
    4.3任务3:模拟银行输入密码操作(时间:30分钟)
    4.3.1 任务描述
      模拟XX银行输入密码的操作,在程序开始时提示用户输入密码,如果密码输入不正确(可以事先自己随意确定一个密码,如果输入不是这个密码,就认为是错误的),则要求用户重新进行输入;如果输入正确,可以直接输出“密码输入正确,请选择其他操作.”即可,然后程序结束。如果用户连续三次输入错误,程序也将结束,可以提示用户“密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.”。
    4.3.2 任务目的
    掌握在循环中使用if语句实现具体功能。
    掌握break语句和continue语句在循环中的使用。
    4.3.3 任务要求
    用户输入正确,则输出“密码输入正确,请选择其他操作.”即可
    用户输出错误,则提示用户重新输入。
    如果用户连续3次输入错误,则将用户帐号进行冻结,要求用户明天再输入。
    4.3.4 难点提示
      提示:可以通过循环的判断条件限定用户的输入次数,如果循环正常结束,说明用户已经连续输入错误三次,则应提示用户帐号已经被冻结。在循环中可以通过设置标志位的方式标识循环是正常结束,还是由于输入正确后而跳出循环。然后再在循环体后面判断标志位来进行判断输出是输入正确还是帐户冻结。
    4.4任务4:打印图形(时间:15分钟)
    4.4.1 任务描述
    使用循环语句实现下面的图形:
    *****
    ****
    ***
    **
    *

    4.4.2 任务目的
    理解二重循环的意义,以及循环的流程。
    理解如何使用二重循环完成程序实现。
    4.4.3 任务要求
    先完成此图形,然后修改程序,使程序可以根据用户输入的数据进行打印,例如:上图是用户输入5时打印的结果。
    4.4.4 难点提示
      提示:最外层循环确定的是行数,而内层循环则确定每行有多少个”*”。且内层循环的取值或判断条件一般都取决于最外层循环变化。
      
    五、课后作业
    5.1 作业1 打印图形(时间:30分钟)
    5.1.1 作业任务
    使用循环语句输出一个以*号组成的菱形。要求行数从键盘接收。
    5.1.2 任务要求
    (1)在输出数据前,应给出用户提示信息。
    (2)程序在编写时,注意程序的格式,例如:缩紧、空行、空格的使用。
    (3)编程原则:程序应保证结清晰,容易理解,并添加适当的注释说明信息。
    5.1.3 难点提示
    内层循环和外层循环格子要完成的任务。
    5.2 作业2 打印图形(时间:30分钟)
    5.2.1 作业任务
    编写一个程序,它能够读入一个正方形的边长,然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形。例如,程序读入的边长是5,那么它应输出边长为5的空心正方形。
    5.2.2任务要求
      同作业1
    5.2.3 难点提示
    同作业1。



    5.3 作业3 进制转换(时间:25分钟)
    5.3.1 作业任务
      设计一个程序,该程序能将一个十进制整数,输出将其转化为二进制数以后有多少个1.例如3转化为二进制是11,有两个1,就输出2;5转化为二进制是101,也输出2.
    5.3.2任务要求
    1.要求用户从键盘接收该十进制数。
      2.程序在编写时,注意程序的格式,例如:缩紧、空行、空格的使用。
      3.编程原则:程序应保证结清晰,容易理解,并添加适当的注释说明信息
    5.3.3难点提示
    十进制转换为二进制的方法:
    以45为例
    47/2=23 余数1
    23/2=11 余数1
    11/2=5 余数1
    5/2=2 余数1
    2/2=1 余数0
    1/2=0 余数1
    得到的余数最底层的作为最高位,最顶层的作为最低位 得到的二进制数是:101111.

    5.4 作业4 (时间:25分钟)
    5.4.1 作业任务
    有一条长阶梯,若每步跨2阶最后剩下1阶;若每步跨3阶最后剩下2阶;若每步跨5阶最后剩下4阶;若每步跨6阶最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。编程计算这条阶梯共有多少阶?
    5.4.2 任务要求
    分别用for循环和while循环编写程序。
    5.4.3 难点提示
    阶梯数目为n则:(n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)

     

    答案:

     

    #include <stdio.h>

    int main()
    {

        /*4.1.1
         * 方法一
     int ABCD = 0;
        int DCBA = 0;
        int A = 0;
        int B = 0;
        int C = 0;
        int D = 0;

        for(ABCD = 1000; ABCD < 10000; ABCD++)
        {
            A = ABCD / 1000;
            B = ABCD / 100 - A * 10;
            C = ABCD / 10 - A * 100 - B * 10;
            D = ABCD - A * 1000 - B * 100 - C * 10;

            printf("ABCD=%d\n",ABCD);

            DCBA = D * 1000 + C * 100 + B * 10 + A;

            if ( ( ABCD * A ) == DCBA)
            {
                printf("The Number is %d\n",ABCD);
            }
        }

        return 0;
        *
        */

        /*
         * 方法二

     int ABCD = 0;
        int DCBA = 0;
        int A = 0;
        int B = 0;
        int C = 0;
        int D = 0;

        while(ABCD<10000){
          ABCD++;
           A=ABCD/1000;
           B=(ABCD-A*1000)/100;
           C=(ABCD-A*1000-B*100)/10;
           D=ABCD%10;
           //倒叙
           DCBA=D*1000+C*100+B*10+A;

          if((ABCD*a)==DCBA){
          printf("四位自然数ABCD,它乘以A后变成DCBA:%d\n",ABCD);}
         }

         return 0;
         *
         */

        /*
         * 方法三

     int ABCD = 0;
        int DCBA = 0;
        int A = 0;
        int B = 0;
        int C = 0;
        int D = 0;

           do{
          ABCD++;
          //分别得出个十百千位
          A=ABCD/1000;
          B=(ABCD-A*1000)/100;
          C=(ABCD-A*1000-B*100)/10;
          D=ABCD%10;
          //倒叙
          DCBA=D*1000+C*100+B*10+A;

           if((ABCD*A)==DCBA){
           printf("四位自然数ABCD,它乘以A后变成DCBA:%d\n",ABCD);}
          }while(ABCD<10000);
             return 0;
         *
         */
     /* 4.2.1
      *
     int a=0,b=0;
     printf("请输入一个整数:");
     fflush(stdout);
     scanf("%d",&a);

        while( b<=100){
      b++;
      if(a%b==0){
      printf("能被%d整除的数是%d\n",a,b);
      }
     }
     return 0;
    */

     /*
      * 方法二
     int a=0,b=0;
     printf("请输入一个整数:");
     fflush(stdout);
     scanf("%d",&a);

     for(b=0;b<=100;b++){
      if(a%b==0){
       printf("能被%d整除的数是%d\n",a,b);
      }
     }

     return 0;
      *
      */
    /*
     *4.3.1

     int a=123,b=0,n=1;

      while(n<=3){
       n++;
       printf("请输入密码:");
       fflush(stdout);
       scanf("%d",&b);
       if(b==a){
         printf("密码输入成功");
         }
       if(b==a)break;
       if(n>3){
        printf("密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.");
        break;
       }
       if(b!=a){
        printf("密码输入有误");
        continue;
       }

      }
      return 0;
     *
     */

    /*
     * 4.4.1
      int i=0,j=0;
      fflush(stdout);


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

       for(j=i;j<=5;j++){

        printf("*");

       }
       printf("\n");
      }
      return 0;
     *
     */

    /*
     * 5.1.1
     int i,j,n;
      scanf("%d",&n);
      for(i=0;i<n;i++){
       j = n+i;
       while(j--){
        printf("%s",j>2*i?" ":"*");
       }
       printf("\n");
      }
      for(i=n-1;i>0;i--){
       for(j=0;j<n+i-1;j++){
        printf("%s",j<n-i?" ":"*");
       }
       printf("\n");

      }
      return 0;
     *
     */

      /*
       * 5.2.1
         int i,j,a;
      printf("输入一个正方形的边长:\n");
      fflush(stdout);
      scanf("%d",&a);
      for(i=1;i<=a;i++)printf("*");
      printf("\n");
      for(i=1;i<=a-2;i++)
      {
      printf("*");
      for(j=1;j<=a-2;j++)printf(" ");
      printf("*\n");
      }
      for(i=1;i<=a;i++)printf("*");
      printf("\n");

      return 0;

       *
       */


     /*
      * 5.3.1
         int x,count=0;
      printf("请输入一个整数:\n");
      fflush(stdout);
      scanf("%d",&x);
      while(x){
       x=x&(x-1);
       count++;
      }
      printf("一共有%d个",count);
      *
      */

     /*
      * 5.4.1
      int n=1;
       while(!((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0))){
        ++n;
       }
       printf("这条阶梯共有 %d 阶。",n);

      return 0;
      
      *
      */

    }

     

    展开全文
  • for循环语句详解

    千次阅读 2014-03-14 22:16:57
     C语言中的for循环语句不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。   1.1 for循环语句的格式   for(表达式1;表达式2;表达式3...

    1 for循环语句的应用规则 

      C语言中的for循环语句不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。 

      1.1 for循环语句的格式 

      for(表达式1;表达式2;表达式3)语句; 

      这里边的“语句”就是循环体语句,若其中只有一条语句,可以不用花括号,若多于一条,则必须用花括号将这些循环体语句括起来。 

      1.2 for循环语句的执行过程 

      (1)先操作表达式1; 

      (2)操作表达式2,若其值为真(值为非0),则执行for语句中的循环体语句一次,然后执行下面第三步,若为假(值为0),则结束循环,转到第5; 

      (3)操作表达式3; 

      (4)转回上面第2步骤继续执行; 

      (5)结束循环,执行for语句下面的语句。 

      要注意表达式1只执行一次! 

      通常,表达式1用来为循环变量赋初值,表达式2用来设置执行循环的条件,表达式3用来改变循环变量的值。所以for语句的格式也可以这样描述: 

      for(循环变量赋初值;循环条件;循环变量增值)语句; 

      2 fowhile语句的编程对比 

      通过结合例子,如求sum=1+2+3++100的和,来分别看一下forwhile语句的编程效果。 

      首先用for循环语句来编程实现 

      main() 

       

      int i,sum=0;/*定义变量i,sum为基本整型,且为sum赋初值0*/ 

      for(i=1;i<=100;i++)sum=sum+i;/*for语句实现循环,循环体只有一句,可不用花括号*/ 

      printf(sum=%d,sum); /*退出循环后的语句,即输出sum的值*/ 

      

      再用while语句进行编程实现 

      main() 

      { 

      int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值10*/  

      while(i<=100) /*执行循环体的判断语句*/ 

      { 

      sum=sum+i; /*将变量i与其前各项之和累加*/ 

      i++; /*循环变量增加1*/ 

      } /*循环体多于一个语句时要用花括号括起来*/ 

      printf(sum=%d,sum); /*退出循环,输出sum的值*/ 

      } 

      对比以上程序,显然我们发现,for语句在编程语句上更简单、方便,编程效率更高。而while语句在编程过程中,要书写更多的语句。 

      3 for语句的深入应用 

      (1)for语句一般形式中的表达式1可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1,其后的分号不能省略。如for(;i<=100;i++){}; 

      (2)表达式2也可以省略,即没有判断循环的条件,此时编译系统将循环条件默认为真,循环将无终止地循环下去,这种情况可以在循环体中设置条件控制循环。 

      例如:for(i=1;;i++)sum=sum+i;为死循环语句,若使其实现1+2+3++100后结束循环,则可以在循环体中加上控制条件: 

      for(i=1;;i++){if(i>100)break;sum=sum+i;} 

      (3)表达式3也可以省略,即没有设置用来改变循环变量的语句,循环将无终止地循环执行下去,但此时程序设计者可以在循环体中加上用来改变循环变量的语句。如: 

      for(i=1;i<=100;) 

      {sum=sum+i; 

      i++;/*循环变量增加1,改变循环变量的值*/ 

      } 

      另外表达式3不一定都要写成如i++这样的形式,要根据循环变量的实际变化规律而定,如可以写成这样的形式:i=i+2i=i*3…。 

      (4)可以省略表达式1和表达式3,只有表达式2即只给循环条件。此时可以在程序的适当位置对循环变量赋初值和改变循环变量的值。如: 

      int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值10*/ 

      for(;i<=100;) 

      sum=sum+i++; /*改变循环变量的值*/ 

      (5)三个表达式都可以省略。 

      如:for(;;)语句; 

      即不设初值,没有判断条件(认为表达式2为真值),循环变量不增值,将无终止的执行循环体。在实际应用中程序设计者可以将这三个内容分写在程序的适当位置。 

      如: 

      main() 

      { 

      int i=1,sum=0; /*定义变量赋初值10*/  

      for(;;) 

      {if(i>100);{sum=sum+i++;}}/*为循环设置控制条件,改变循环变量的值*/ 

      printf(sum=%d,sum); 

      } 

      (6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.且可以有多个,此时用逗号将其分隔开,: 

      for(i=1,sum=0;i<=100;i++);/*可以为多个变量赋初值,用逗号分隔*/ 

      { 

      sum=sum+i; 

      } 

      (7)当循环的次数不确定时,表达式2即控制循环的条件语句,其判断对象就不能是循环变量了。如: 

      已知s=1+2+3++n,求满足s>=1000的最小n值。 

      这个程序的循环执行的条件为“s<1000,退出循环时n的值不知道是多少,所以循环条件的判断对象应该是s,其程序可以如下编写: 

      main() 

      { int n,s; /*定义变量赋不赋初值*/  

      for(n=1,s=0;s<1000;n++) /*for语句实现循环*/  

      s=s+n; /*将变量n与其前各项之和累加*/  

      printf(n=%d,n-1); /*,输出n的值*/  

       

      用while语句可以这样编写: 

      main() 

      {int n=1,s=0;  

      while(s<1000)  

      s=s+n++;  

      printf(n=%d,n-1);  

       

      上面这个程序循环的次数在编写程序时不能确定,遇到这种情况人们首先想到的是用while语句来实现循环,以为for语句无法实现,其实这是一种误解。在BASIC语言中for循环只能用在循环次数确定的循环当中,C语言中for语句格式却有其特殊性,而应用更具灵活性。 

     

    展开全文
  • 10. C语言 -- 循环结构:for 语句和嵌套循环

    万次阅读 多人点赞 2018-10-19 19:18:09
    本文主要讲述 C 语言循环结构中的 for 语句,介绍了表达式的省略、逗号表达式和在表达式中定义变量这三种灵活的使用方式,举例说明了循环嵌套的使用方式。
  • 1、 输入一组整数a,输出其中奇偶数、奇偶数的和、积以及个数。...for i=1:n x(i)=input('输入数字:'); end j=1;k=1; %y向量存奇数,z向量存偶数 for i=1:n if mod(x(i),2) y(j)=x(i); j=j+1; els
  • for语句循环结构的程序设计

    千次阅读 2014-09-17 23:50:38
    for语句循环结构的程序设计
  • Java语句——for循环

    千次阅读 2015-09-20 22:14:42
    for循环语句可以说是Java语言中最有效,最灵活的循环结构,一般用在循环次数已知的情况下。一、for(initialization; condition; update){ statements; } **语法解释:**for语句执行时,首先执行初始化操作...
  • for 循环 if语句 分支 python三大结构 1 、顺序结构 顺序结构是指代码按照编写的顺序,自上而下,自左至右 运行的顺序 在编程语言中大多是的编码都是这种结构。 2、 分支结构 分支结构的表达式结果是一个...
  • C++ for循环语句讲解

    千次阅读 2014-05-26 09:47:33
    如果我们把粉丝的标牌换成了语句cout 赛车里最有名的是Formular 1(一级方程式赛车...for语句称为循环语句,大括号内的语句块称为循环体,而这种赛车的结构在C++中称为循环结构。根据上面的语法格式,我们来描述一
  • Swift for循环语句用法

    千次阅读 2017-11-23 22:45:39
    Swift for 语句  一般来说,swift循环是递增式遍历。当然各种循环,swift都能办到。但其大多采用关键字形式实现,大部分开发者更喜欢直接使用C式循环代码。在swift3.0后,C语言形式被彻底废弃,因此从低...
  • 介绍Python for循环语句和range函数的使用,文中主要讨论for循环语句,Python的for循环语句类似于shell或是脚本语言中的foreach循环,可以迭代序列对象。 使用range函数可以让Python的for循环提供类似于传统的for...
  • robotFramework——FOR循环语句

    万次阅读 2015-09-29 00:29:56
    robotframework支持FOR循环语句,语法和Python的语法基本相同,但robotframework中,“FOR”关键字前面需要增加一个“:”,写成“:FOR”,其它与Python的语法相同。下面我们看看如何实现循环。 1.FOR IN 这种结构...
  • Java for语句详解

    千次阅读 2019-07-02 22:57:14
    for 语句通常使用在知道循环次数的循环中。 for 语句语法格式如下所示。 for(条件表达式1;条件表达式2;条件表达式3) { 语句块; } for 循环中 3 个条件表达式的含义如表 1 所示。 表1 for 循环中 3 个表达式的...
  • 文章目录什么时候执行else,什么时候不执行else语句for...else...正确代码示例和说明for循环搭配else常见错误和陷阱 在Python中,有while和...for循环常用于可以提前确定循环次数的场合,尤其适合用来迭代或遍历可...
  • 在 Shell 编程中,经常使用 for 循环遍历指定内容,下面将结合实例进行介绍。 一、基本语法 1.1 遍历指定内容 遍历循环列表,依次将循环列表中的值赋值给变量,然后执行 do 和 done 之间的语句,如下所示: for...
  • for语句循环 遍历的过程:把文本中所有的内容都执行一遍 for 变量名 in 取值列表 do 命令序列(命令行) done 空格 tab键 换行,去取for循环去遍历的列表 每一次遍历去执行一次do的操作 格式: i+=2 i=i+2 ...
  • for循环语句for循环语法结构列表循环不带列表循环实例类C风格的for循环循环控制语句应用案例九九乘法表直角三角形等腰三角形倒等腰三角形菱形空心三角形空心菱形脚本计算1-100奇数和判断所输整数是否为质数批量创建...
  • 第五课 for循环(1)--循环次数控制

    万次阅读 2015-09-30 00:42:40
    第五课 for循环(1)---循环次数控制 【循环引入】   例题5.1:画下面形状的5级梯形。   分析: 研究问题的方法之一是“从简单到复杂”。 步骤 说明 图形 步骤1 先分析简单的1级梯形基本...
  • 一个For语句导致死循环的例子

    千次阅读 多人点赞 2014-02-26 10:47:44
    在Java开发中常用到For循环,它对简化业务处理,提高效率,非常有帮助。但要防止程序算法中可能导致死循环的情况,而且有的死循环还不好察觉。比如下面这个例子,算法极容易认为是50,实际上其结果是无穷大的一个死...
  • python的语句2:for循环和while循环

    千次阅读 2019-01-17 15:00:08
    1.for语句 for 变量 in range(10): 循环需要执行的代码 示例:求1~100之间所有偶数之和 sum = 0 for i in range(2,101,2): sum += i print(sum) 2.while语句 while 条件(): 条件满足时,做的事情1...
  • 循环次数已知的情况下使用for循环,且所有for循环均可用while循环实现。 while循环 在给定的条件为true时执行循环体,否则退出循环体。在循环次数未知是使用while循环。 嵌套循环 循环体中嵌套...
  • GLSL ES 语言—循环语句for

    千次阅读 2019-08-05 08:35:53
    for 语句for (初始化表达示; 条件表达示; 循环表达式) { 反复执行这里; }例如:for (int i = 0; i &lt; 3; i+...
  • if switch for if / switch判断语句 ==&gt;流程控制: 决定逻辑运行的走向 , 根据条件决定如何做出反应 语法: 判断条件为真,则走进{ } 中 执行语句 if(判断条件){ //执行语句 } 判断条件会自动转为布尔值...
  • C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况。因此,这个语句的使用频率是最高的,当然它的处理情况比上面两种循环要复杂一些。它的...
  • PB 基本语句 循环语句

    万次阅读 2011-04-07 17:36:00
    PB 基本语句 循环语句 PB 基本语句 一、赋值语句 赋值语句用于给变量、对象属性赋值,这是应用程序中使用最频繁的语句,其语法格式为:variable...
  • 确定次数循环指循环体对循环次数有明确的定义循环次数采用遍历结构中元素个数来体现。 Python通过保留字for实现“遍历循环” : for <循环变量> in <遍历结构>: <语句块> 遍历结构可以是...
  • 什么时候使用for in循环 前面我们已经学习了while循环,那么一般什么情况下使用for in...但是,如果知道循环体中指令执行的具体次数,那么就使用for in循环for in循环一般格式如下:  for VariableName in wordlis

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,566
精华内容 30,226
关键字:

下面的for语句的循环次数是