循环结构

Posted yiyidexioafen

tags:

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

本章重点、难点:

一、for语句

1、for语句的一般形式:


for(<初值表达式>;<条件表达式>;<循环变量表达式>)

<循环体语句>


2、for语句的重要特征

  • <初始表达式>可以省略,但需保留(;),同时在for之前必须给循环控制变量控制变量赋值,形式为:
    <初始表达式>;
    for(;<条件表达式>;<循环表达式>)
    <循环体语句>
  • <条件表达式>一般不能省略,否则为无限循环。
  • 3个表达式均省略,即for( ; ; ;),为无限循环,程序中要避免这种事情发生。

二、while与do-while语句

1、while语句的一般形式:


while(<条件表达式>)

循环语句
循环变量表达式

2、while语句的重要特征

  • 环变量表达式>用来更新计算循环变量的值,一般情况下,<循环体语句>应该是用一对花括号括起来的复合语句,其中至少要有两条语句。
  • 若<循环体语句>中没有<循环变量表达式>,而只有循环语句,则有可能会使程序出现无限循环而发生错误。
  • 由于while循环是先判断<循环表达式>的值,后决定是否执行<循环体语句>,因此,<循环体语句>有可能一次也没有执行。
  • 在一般情况下,for和while可以互相转换。

3、do-while语句的一般形式:


do

<循环体语句>
while(<条件表达式>);

4、do-while语句的特征

  • 一般情况下,一定要有可以使<条件表达式>的值为假的语句,否则会使程序出现无限循环。
  • do-while语句中的<循环体语句>的执行不同于for和while语句,它的<循环体语句>会先执行一次,因为是先执行<循环体语句>,后判断<条件表达式>。
  • 在某些情况下,while和do-while可以互相转换。

三、break语句与continue语句

1、break语句既可用于分支结构,又可用于循环结构,其作用是跳出控制结构语句。
2、continue语句不会终止循环,而是在<循环体语句>没有执行完的情况下,结束当前循环,提前进入下一循环。

一、课本案例详解

<br>#include<stdio.h>
int main()

 int i,j,k,width;
 printf("请输入最大的宽度值:\\n");
 scanf("%d",&width);
 for(i=1;i<=width;i++)
 
    for(j=1;j<=(width-i);j++)
        printf(" ");
    for(k=1;k<=(2*i-1);k++)
        printf("*");
        printf("\\n");
 
  for(i=1;i<=(width-1);i++)
 
    for(j=1;j<=i;j++)
        printf(" ");
    for(k=1;k<=(2*width-2*i-1);k++)
        printf("*");
        printf("\\n");  
 

 

  技术图片

 

#include<stdio.h>
int main()

 int i,j,k,width;
 printf("请输入最大的宽度值:\\n");
 scanf("%d",&width);
 for(i=1;i<=width;i++)
 
    for(k=1;k<=(2*i-1);k++)
        printf("*");
        printf("\\n");
 
  for(i=1;i<=(width-1);i++)
 
    for(k=1;k<=(2*width-2*i-1);k++)
        printf("*");
        printf("\\n");  
 

 

技术图片

3.

#include<stdio.h>
int main()

 int i,j,k,width;
 printf("请输入最大的宽度值:\\n");
 scanf("%d",&width);
 for(i=1;i<=width;i++)
 
    for(j=1;j<=2*(width-i);j++)
        printf(" ");
    for(k=1;k<=(2*i-1);k++)
        printf("*");
        printf("\\n");
 
  for(i=1;i<=(width-1);i++)
 
    for(j=1;j<=2*i;j++)
        printf(" ");
    for(k=1;k<=(2*width-2*i-1);k++)
        printf("*");
        printf("\\n");  
 

技术图片

 
4.
#include<stdio.h>
int main()

 int i,j,k,width;
 printf("请输入最大的宽度值:\\n");
 scanf("%d",&width);
 for(i=1;i<=width;i++)
 
    for(j=1;j<=i-1;j++)
        printf(" ");
    for(k=1;k<=2*width-1-(i-1)*2;k++)
        printf("*");
        printf("\\n");
 
  for(i=1;i<=(width-1);i++)
 
    for(j=1;j<=(width-i-1);j++)
        printf(" ");
    for(k=1;k<=2*i+1;k++)
        printf("*");
        printf("\\n");  
 

 

  技术图片

 

以上是关于循环结构的主要内容,如果未能解决你的问题,请参考以下文章

shell循环结构都有哪些

当型循环结构和直到型循环结构的定义是啥?

当型循环结构和直到型循环结构的定义是啥

循环结构的问题

顺序结构、循环结构、分支结构的流程示意图

循环结构