在Android Studio中开发Android应用时,while循环中使用的变量的值不正确.我在测试用例中将它减少到一个非常简单的情况:
方法onStart:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
执行测试应用程序时的输出是:
value before = 23
value in while loop = 0
Run Code Online (Sandbox Code Playgroud)
而结果应该是
value in while loop = 23
Run Code Online (Sandbox Code Playgroud)
在调试时,结果如预期的那样('while while = 23'中的值),但在常规的调试版本中,它是错误的.主活动类的反汇编代码看起来没问题,变量'value'的值在while循环体的末尾设置为0.当while循环体中的某些代码或函数使用变量'value'时,它将具有值0而不是23.在测试用例中,我使用Log语句来简化.
当我改变线路时,它不会出错
value = 0;
Run Code Online (Sandbox Code Playgroud)
至
if (value …Run Code Online (Sandbox Code Playgroud)