直接代码了 \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里面不能直接呀😞😞
![](https://profile-avatar.csdnimg.cn/4e90c3ab46b2463a8807a6a033db9c88_weixin_69711268.jpg!4)
java 的变量声明和运算怎么不对了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- qq_25376897 2022-05-13 22:35关注
因为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 + ""; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Stata链式中介效应代码修改
- ¥15 latex投稿显示click download
- ¥15 请问读取环境变量文件失败是什么原因?
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错