对于这样的一个双循环for语句我这样理解对不?帮我纠错一下
来源:百度知道 编辑:UC知道 时间:2024/09/20 21:07:49
main()
{
int i,j;
char a[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}};
for(i=0;i<=1;i++)
{
for(j=0;j<=4;j++)
printf("%c",a[i][j]);
printf("\n");
}
我的理解是:
程序一开始先判断了外环条件i<=1为真,所以转向内环由于j<=4也是为真所以执行printf("%c",a[i][j])此时的输出为B;之后对j+1,再来判断j<=4,为真在执行printf("%c",a[i][j]);输出为A……在输出S……
当条件j>4时跳出内循环,对外循环的i+1,之后再来判断i<=1,为真,问题来了,由于下面的内循环j已经大于4,所以条件不能满足,那么程序就不会执行printf("%c",a[i][j]);那对于次此程序char a[2][5]
的第二行数组岂不是没法输出了吗?
{
int i,j;
char a[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}};
for(i=0;i<=1;i++)
{
for(j=0;j<=4;j++)
printf("%c",a[i][j]);
printf("\n");
}
我的理解是:
程序一开始先判断了外环条件i<=1为真,所以转向内环由于j<=4也是为真所以执行printf("%c",a[i][j])此时的输出为B;之后对j+1,再来判断j<=4,为真在执行printf("%c",a[i][j]);输出为A……在输出S……
当条件j>4时跳出内循环,对外循环的i+1,之后再来判断i<=1,为真,问题来了,由于下面的内循环j已经大于4,所以条件不能满足,那么程序就不会执行printf("%c",a[i][j]);那对于次此程序char a[2][5]
的第二行数组岂不是没法输出了吗?
你的理解错了.
for(j=0;j<=4;j++)
这个循环的一开始就会执行一句 j=0;所以在开始循环时j会重新给它赋值为0
所以还会循环的.
明白否?
你还是没弄懂FOR啊
for(j=0;j<=4;j++)
再次执行到这里时 J又被重新赋值为0了
所以会再执行一次循环