看看是不是这样理解的?
程序如下:
#include <stdio.h>
void main()
{
char a[]={'*','*','*','*','*'}; \* 将*号分别赋予a[0]a[1]a[2]a[3]a[4] *\
int i,j,k;
for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j<i;j++) printf("%c",' ');
for(k=0;k<5;k++) printf("%c",a[k]);
}
}
过程:从第一个for(i=0;i<5;i++) 语句开始,当i=0,且i<5为真,执行{}的复合语句:
先输出一个回车换行,当j=0,0<0为假,不执行语句退出循环。接下来,当k=0,k<5为真,执行后面printf语句;执行k++后,K值为1,这样判断执行,直到条件不成立退出循环。 这时执行i++,i的值为1。1<5为真。执行{}复合语句,当j=0,i=1时,j<i为真,这时输出一个空格符。当j++后,j值为1,再进行判断条件不成立退出循环。当k=0,k<5为真,执行后面printf语句;执行k++后,K值为1,这样判断执行,直到条件不成立退出循环。这样循环反复不知对不对?