java中用for计算1到100奇数和

int sum = 0;
for(int y=1; y<=100; y++) {
sum +=y;
y++;
}
System.out.println("sum:"+sum);
为什么上面这个方式也可以得到奇数和?在做练习的时候,自己在循环体中加了一句y++;结果运行得出的结果是奇数之和,搞不明白,初学者,望指点
另外老师教的两种方式如下:
格式一:
int sum = 0;
for(int y=1; y<=100; y+=2) {
sum +=y;
}
System.out.println("sum:"+sum);
格式二:
int sum = 0;
for(int x=1; x<=100; x++) {
if(x%2 == 1) {
sum+= x;
}
System.out.println("sum:"+sum);
格式一我知道是将变量x从1开始加2,得到每一个奇数
格式二是将变量x对2取余数为1得到所有的奇数。就是不明白最上面那个方式是怎么计算的,求解。

int sum = 0;
for(int y=1; y<=100; y++第四步 y+1) { 第一步执行这里int y=1; y<=100
sum +=y;第二步执行这里 这里y=1
y++;第三步 y+1
}结果为3
如果你清楚for循环的规律,那么这个就不难
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-17
sum +=y;
y++;//这里的y在自加后的值变为2,之后又调用for里的y++,就变为3.所以一直都是奇数
}追问

谢谢您的回答, 还是不明白 循环体里y的值 会返回被控制语句中y++调用的吗,为什么?
另外还有个其他问题
int y=1;
System.out.println(y++); //这里直接输出y++运行结果还是1,输出语句中的y++不会自加吗,然后我试着输出 System.out.println(++y),这里的运行结果却是2

本回答被提问者和网友采纳