如果你得循环体没有花括号{}就像你得代码这样的
for (int i=0; i<10; i++)
j=j+1;
k = ++k;
那么for循环的作用域是离for循环最近的那一条语句,也就是 j=j+1;
for 循环结束之后,k=++k这条语句就只执行了一次加1的操作,所以输出是1
如果你要是加了花括号{}
像这样
for (int i=0; i<10; i++){
j=j+1;
k = ++k;
}
那么for循环的作用域就是花括号里面的语句,也就是
j=j+1;
k = ++k;
这是很基础的东西,楼主多多学习,多多看视频吧,毕老师视频里面都有很详细的讲解。作者: 曹恒业 时间: 2012-7-8 10:07
首先回答你的问题,for循环的默认循环体在没有{}的情况下,确实仅仅包含1个;的语句。
建议,在while(),for(),if()等判断语句之后,即使后面只有一条执行语句,也把这条语句放在{}内,否则在面对大片代码的时候这种错误非常不易察觉。作者: 万宝东 时间: 2012-7-8 10:09
public class Increment{
public static void main(String[] args){
int j = 0;
int k = 0;
for (int i=0; i<10; i++)
j=j+1;
k = ++k;
System.out.println(j);
System.out.println(k);
}
}
楼主这个程序算出这个结果是正常的,因为你的for循环没有加{},所以默认的for循环只控制下面的一行代码,也就是 j=j+1;。 k = ++k;这一句不在for循环内,所以只执行一次。要想让for循环控制k = ++k;就要加上{}。代码如下