gpt4 book ai didi

java - Android:变量在while循环中的值不正确

转载 作者:IT老高 更新时间:2023-10-28 23:36:27 26 4
gpt4 key购买 nike

在 Android Studio 中开发 Android 应用时,while 循环中使用的变量的值不正确。我将它在一个测试用例中简化为一个非常简单的用例:

  1. 在Android Studio中新建一个项目,空白Activity
  2. 将以下代码添加到主要 Activity 中

方法开始:

@Override
public void onStart() {
super.onStart();

int count = 2;
int index = 1;

int value = 23;

Log.i("test", "value before = " + value);
while (index < count) {
Log.i("test", "value in while loop = " + value);
index++;
value = 0;
}
}

执行测试应用时的输出是:

value before = 23
value in while loop = 0

而结果应该是

value in while loop = 23

调试时,结果如预期('while loop = 23'),但在常规调试构建中,结果是错误的。主 Activity 类的反汇编代码看起来没问题,变量'value'的值在while循环体的末尾设置为0。当 while 循环体中的某些代码或函数使用变量 'value' 时,它的值将是 0 而不是 23。在测试用例中,我使用 Log 语句来简化。

换行不会出错

value = 0;

if (value == 23) {
value = 0;
}

或者当我删除线时

value = 0; 

所以它看起来像一些优化错误。但是做了哪些优化会导致这种情况呢?它使代码不可靠。

最佳答案

如果你真的确定写的代码能正常工作那么从现在开始,你必须开始检查(有序):

  • 配置 --> 你的项目配置是否完全符合 Java 版本、jdks 或 Java 版本是否与使用的 Android 库兼容?您的 Java 和 Andorid 库是否配置正确?
  • 环境 --> 您的调试模拟器是第 3 方库还是您的调试设备是调试代码的有效设备?您的编码操作系统是否与您的 ide、Java 版本或 Android 库兼容?
  • JVM --> 您是否尝试使用正确的 Java jdk 源卸载并重新安装您正在使用的版本?

也许您必须提供有关您的环境的一些详细信息,例如 Java 版本、Android 最低版本、操作系统或您正在使用的 IDE。

我希望这些项目符号能让你产生一些正确的联想来解决你的问题。

关于java - Android:变量在while循环中的值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com