这几天写代码写的混混沉沉,总是犯下面的小错误,发现有很多小细节没注意,看来该沉淀一下了,回归基础
public class Part {
public static void main(String[] args) {
int j = 0;
int x = 0;
int z = 0;
int y = 0;
for (int i = 0; i < 100; i++) {
j = j++;//错误在哪里,帮我分析下
x =+ x; //这种写法为什么可行
z += 1; //这种方法也不对,原因
y++; //这种是正确的
[code]public class Part {
public static void main(String[] args) {
int j = 0;
int x = 0;
int z = 0;
int y = 0;
for (int i = 0; i < 10; i++) //100数字太大,不方便观察,我帮你改成10.
{
j++;//错误在哪里,帮我分析下 j=j++,结果永远为0 ,要想自增,要写为j++.<font color="red"> 错误第一点</font>
x =+ x; //这种写法为什么可行 相当于0=+0,结果永远是0,也不能说他错.
z += 1; //这种方法也不对,原因 相当于 z=z+1 ,方法是对的,<font color="red">你输出时写的是J,所以没有看到结果.</font>
y++; //这种是正确的
x =+ x; //+x就相当于一个数字前面加了一个+号 也就是x=x 应为x=0所以循环后结果为x=0
z += 1; //z = z+1 相当于z++ 自加一百次 所以z=100
y++; //y自加100次 所以y=100
// j++;
}
System.out.println(j);
System.out.println(x);
System.out.println(z);
System.out.println(y);
}
}
复制代码
作者: 王贵朝 时间: 2012-9-24 14:05
public class Part {
public static void main(String[] args) {
int j = 0;
int x = 0;
int z = 0;
int y = 0;
for (int i = 0; i < 100; i++) {
j = j++;//错误在哪里,帮我分析下//因为j的初始值为0而在j=j++中在重复把0=0++
x =+ x; //这种写法为什么可行//这个本不应该出错的,估计是打错了改成+=就ok了
z += 1; //这种方法也不对,原因//语法没错,在打印时粗心了!!!
y++; //这种是正确的
}
System.out.println(j);
System.out.println(x);
System.out.println(j);
System.out.println(y);
}
}作者: 冯伟 时间: 2012-9-24 16:18
for (int i = 0; i < 100; i++) {
j = j++;//错误在哪里,帮我分析下 //我记得Java的说明文档中有这个的说明,大意是有个临时值temp,运算时会先把j的值取出来保存起来,然后在j自增后再把temp的值赋给左边的j
//temp=j; j++; j=temp; 所以最终的值为0,这个与编译器有关,在C语言中就能正常加
x =+ x; //这种写法为什么可行 //这句相当于 x = (+x); 注意右边是一个正数,
z += 1; //这种方法也不对,原因 //这句没错,你输出时把 z 写成 j 了
y++; //这种是正确的
}
System.out.println(j);
System.out.println(x);
System.out.println(j); //应为 z
System.out.println(y);