一、本章重点难点:

for语句、while语句和do while语句和if语句和goto语句组合的循环。

for语句一般形式:

for(<初始表达式>;<条件表达式>;<循环变量表达式>)
{
<循环体语句>
}

while语句的一般形式:

while(<条件表达式>)
{
循环语句
循环变量表达式
}

do-while语句的一般形式:

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

break与continue的作用与区别:

break语句既可用于switch语句结构,又可用于循环语句结构,其作用是跳出控制结构语句。而continue语句不会中止循环,而是在<循环语句体>没有执行完的情况下,结束当前循环,提前进入下一个循环。
break语句和continue语句都会破坏程序的结构化,使程序变成非结构化的程序,在解决问题时应该尽量避免使用这两种语句。

循环结构的嵌套:

一种循环结构里包含另一种循环结构。使用嵌套结构时要注意嵌套的层次,不能交叉,嵌套的内外循环不能使用同名的循环变量,并列结构的内外循环允许使用同名的循环变量。

二、课内反思:

while循环和for循环都要先判断条件再执行循环体语句,因此,有可能一次也不执行循环体语句,而do while语句循环不论怎样都会执行一次循环体语句。
刚开始的时候搞不很清楚,条件表达式、循环变量表达式、还有循环体语句的概念和区别。之前我有先去按照书上表格里给出的代码敲出来也得到了对应的三角形,但是不是很清楚它到底是怎样一步步执行出来的,通过老师讲解之后才知道相互的对应关系和语句的运行。还有在做后面的练习题的时候,光看着代码,我根本不知道它是怎么执行循环的,后面跟着老师一步步分析才知道原来是这样的。所以多练习多理解非常重要,当我们自己在用嵌套循环语句的时候更要搞清楚我们每一步要做什么,每个循环要达到的目的是什么。

三.几何图案输出:

图形一:

1.代码:

# include<stdio.h>
main()
{
    int i,j,k,n=7;
    for (i=1;i<=5;i++)
    {
        for (j=i;j<5;j++)
            printf(" ");
        for (k=1;k<=(2*i-1);k++)
            printf("*");
        printf("\n");
    }   
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=i;j++)
            printf(" ");
        for(k=i;k<=(n-i+1);k++)
            printf("*");
        printf("\n");
            
    }
    
}

2、运行结果:

3、分析:按照老师讲的思路,先把图形补齐,就可以发现这个图形由空格和两个等腰三角形组成,等腰三角形分成上五行和下四行的三角形。

图形二:

1、代码:

#include<stdio.h>
main()
{
    int i,j,k;
    for(i=1;i<=5;i++)
    {
        for(j=1;j<=i;j++)
           printf(" ");
        for(k=1;k<=7;k++)
           printf("*");
        printf("\n");
    }
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=(5-i);j++)
            printf(" ");
        for(k=1;k<=7;k++)
            printf("*");
        printf("\n");   
    }
}

2、运行结果:

3、分析:把图案分成上五行与下四行两个平行四边形,根据输出空格与星号的数量确定规律。每行都输出7个星号,而空格数是从1到4。下面的平行四边形中应该是“5-i”。