变量自增条件放在语句块中和不放在语句块中完全是两种不同的概念,首先楼主要明确for循环语句的成员;如下图:1.参数初始化 2.条件判断 3.循环操作体(也就是楼主所属的语句块) 4. 更新循环变量(变量自增条件)
For循环语句执行过程按照以上1—2—3—4的顺序执行,1条件满足时执行下一步2, 2满足执行3, 3执行完了执行4,4执行完了执行1, 1执行完了到2判断如果不满足2的条件结束循环,完整的循环起止是1-2-3-4-1-2的顺序(2判断不成立的条件下);
按照上面的思路楼主应该理解for循环内成员执行顺序了,在此基础上我们分析楼主的问题:
更新循环条件放在语句块和不放在语句块中有什么区别? 在很简单的for循环当然结果都一样,比如说计算100以内所有整数之和值都是5050;但是其中执行的步骤是不同的(虽然结果一样),当执行复杂for循环时,例如计算100以内能被3整除的整数之和是多少。(更新循环变量放在语句块中)当执行3时,3内在嵌套一个判断条件时,for的执行步骤就会被打乱,程序就会出现问题。
具体代码如下:(打印结果我就不列出来了,楼主回去可以在Elips中调试下,应该就能发现不同)
正常写法:
public class Text5 {
public static void main(String[] args) {
int a;
int sum=0;
for(a=1;a<=100;a++)
{
if(a%3==0)
{
sum=sum+a;
}
}
System.out.println(sum);
}
}
放在语句块中:
public class Text4 {
public static void main(String[] args) {
int a;
int sum=0;
for(a=1;a<=100;)
{
if(a%3==0)
{
sum=sum+a;
a++;
}
}
System.out.println(sum);
}
}
|
|