[求助]循环体
#include<stdio.h>void main()
{ int i , j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i;j++)
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
getch();
}
和
#include<stdio.h>
void main()
{ int i , j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i,j++){
printf("%d*%d=%2d",i,j,i*j);}
printf("\n");
getch();
}
区别是什么?
----------------解决方案--------------------------------------------------------
光加这对{}...是一样的..不过两段都有错误...第二段里的..不是逗号...是分号..还有.两段都少了个}
----------------解决方案--------------------------------------------------------
谢谢
你说的一样是不是运行结果是一样的,它们在理论上有没有不同呢?要是在{}里加上其它的操作是不是有不同的情况的呢?
----------------解决方案--------------------------------------------------------
结果..你自己看看是不是一样...
{}表示是一个集体...
for(j=1;j<=i;j++)
{
printf("%d*%d=%2d",i,j,i*j);
}
跟
for(j=1;j<=i;j++)
printf("%d*%d=%2d",i,j,i*j);
是一样的...如果没有加{}这话..那么循环语句的循环体就是它的下一行的语句...如果加了{}的话..那循环体就是{}之间的整个..
----------------解决方案--------------------------------------------------------
赞同purana的观点,如果你程序中关于j不是<=i,就不同了
----------------解决方案--------------------------------------------------------
书上有讲,应该详细看书才对
----------------解决方案--------------------------------------------------------
以下是引用amyeeq在2006-10-19 11:05:59的发言:
#include<stdio.h>
void main()
{ int i , j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i;j++) 没有匹配.
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
getch();
}
和
#include<stdio.h>
void main()
{ int i , j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i,j++){
printf("%d*%d=%2d",i,j,i*j);}
printf("\n");
getch();
}
区别是什么?
#include<stdio.h>
void main()
{ int i , j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i;j++) 没有匹配.
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
getch();
}
和
#include<stdio.h>
void main()
{ int i , j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i,j++){
printf("%d*%d=%2d",i,j,i*j);}
printf("\n");
getch();
}
区别是什么?
循环语句的作用范围为紧跟着它的第一个语句(包括复合语句和空语句)
----------------解决方案--------------------------------------------------------
谢谢分享
----------------解决方案--------------------------------------------------------
上面分析的很好!
----------------解决方案--------------------------------------------------------