嵌套for循环中变量初始化步骤是否可省略的问题
c语言吧
全部回复
仅看楼主
level 1
SS1934 楼主
int i=0,t=0; main{ for(;i<10;i++){for(;t<10;t++){循环体}}}
2013年06月24日 03点06分 1
level 1
SS1934 楼主
包含的头文件就省略了,用的是VC6编译,像这样for括号中第一个冒号前不写变量初始化语句的话,外层for循环始终只执行1次,话说这是怎么搞的?
2013年06月24日 03点06分 2
呵呵,,首先你应该了解在for循环中的三个表达式中的变量都是临时变量(局部变量) 如果你没有将其循环变量初始化的话,以你的程序为例:一旦循环完成后也就是说当外层循环中 i = 0, 外部初始化的,满足循环条件所以会进入内层循环,而当内层循环完成后,由于你没有将其循环变量初始化为起始值
2013年06月24日 04点06分
也就是0,那么程序将会使用原先在循环中自增的值,如你的内层循环中的t变量,你没有初始化,则t在循环后变为10,这里不满足循环条件,则不进入循环,只循环外层循环(此时外层循环还是在循环,只是判断了条件,而条件不满足,)如,你的内层循环中的t = 10,此时外层循环i = 0,此时再运行了循环,因为
2013年06月24日 04点06分
i = 0,满足循环条件,所以进入内层循环,而内层循环中因为t的值为10,不满足条件所以不进入循环了,你在程序中看到的就只运行了一次循环(10次),其实运行了总共100次。
2013年06月24日 04点06分
@李琼范 哦,原来漏了内循环变量的重复赋值环节,源程序又臭又长,一直没注意这里,还以为是别的什么问题呢。多谢了。
2013年06月24日 04点06分
level 12
这么写的话t等于10之后就不会进入内层循环了
2013年06月24日 04点06分 3
恩,之前一直没注意是这里出的问题。真悲剧,这次丢人丢到锤子里去了。
2013年06月24日 04点06分
level 8
行的,给你个例子:
int i=0;
for(;i<10;)
{
printf("%d",i);
i++;
}
2013年06月24日 04点06分 4
1