小编Hie*_*lko的帖子

Android:变量在while循环中具有不正确的值

在Android Studio中开发Android应用时,while循环中使用的变量的值不正确.我在测试用例中将它减少到一个非常简单的情况:

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

方法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)

java optimization android runtime-error samsung-mobile

18
推荐指数
1
解决办法
837
查看次数