直接代码了 \n
int a = 1, b = 2 * a ;
for(a=1;a<10;a++){ //把b=2a放在这里就是
// 2 4 6 8.等
System.out.println(b)//这里输出全是2
} //我在前面不是已经声明了b=2a了呀。为什么在for里面不能直接呀😞😞
因为a b 都是基本类型, b = 2 * a ;直接就是计算出结果的,下面再改a的值,是不会影响到b的。
你想要的效果应该是那种随着一个变化而变化,那要用引用类型,比如下面这样
public class Test {
public static void main(String[] args) {
A a = new A();
B b = new B(a, 2);
for (a.num = 1; a.num < 5; a.num++) {
System.out.println(b);
}
}
}
class A {
int num = 1;
}
class B {
A a;
int n;
public B(A a, int n) {
this.a = a;
this.n = n;
}
@Override
public String toString() {
int num = a.num * n;
return num + "";
}
}
int a = 1, b = 2 * a ;
for(a=1;a<10;a++){
b=2a
// 2 4 6 8.等
System.out.println(b)//这里输出全是2
}
你的代码注掉了
代码是从上往下执行的,所以会出现这种情况
前面定义了,只执行一次;
然后for循环里面,你没有再次用它,只是单纯的a的变量增加,然后输出了这么多遍b的值
b的值在上面执行完之后是 2 了
所以最后结果输出全是 2
想要值有所改变 那你放在里面吧 或者定义一个函数 再调用函数