Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安卓循环优化的艺术缺陷。具有意外结果的简单java函数_Java_Android_Android 6.0 Marshmallow_Dalvik_Android 5.1.1 Lollipop - Fatal编程技术网

安卓循环优化的艺术缺陷。具有意外结果的简单java函数

安卓循环优化的艺术缺陷。具有意外结果的简单java函数,java,android,android-6.0-marshmallow,dalvik,android-5.1.1-lollipop,Java,Android,Android 6.0 Marshmallow,Dalvik,Android 5.1.1 Lollipop,编辑: 经过几个小时的测试,我可以说这是一个带有for循环的Android运行时的严重缺陷 昨天我在游戏中发现了一个小故障,调试代码时发现一个非常简单的java函数得到了意想不到的结果(取决于设备的Android版本)。 这是java代码: // Simple function to count items of a 6 rows pyramid (1+2+3+4+5+6) private int getSum () { int sum=0, x=0; for (int i=0;

编辑: 经过几个小时的测试,我可以说这是一个带有for循环的Android运行时的严重缺陷

昨天我在游戏中发现了一个小故障,调试代码时发现一个非常简单的java函数得到了意想不到的结果(取决于设备的Android版本)。 这是java代码:

// Simple function to count items of a 6 rows pyramid (1+2+3+4+5+6)
private int getSum ()
{
    int sum=0, x=0;
    for (int i=0; i<6; i++) { x++; sum+=x; }
    return sum;   // always should return 21
}
如果你的Android是5.1.1或6.0.x,它将显示15(错误结果),如果它是以前的Android版本,它将返回21(确定结果)


拜托,有人能做这个简单的测试吗。我对这件事很生气

如果您一步一步地调试代码,那么它将返回正确的值(21)。如果您试图跟踪代码,它也会返回21个值。 例如:

private int getSum2()
{
整数和=0,x=0;

对于(int i=0;我在jellybean和棒棒糖设备中进行了测试,两次我都得到了21个。非常感谢!可能是棉花糖问题(?)请,有人能在Android 6.0.x中做这个简单的测试吗?谢谢。是的@Daviddev我在Android 6.0.1中测试了它的功能15。非常奇怪。谢谢@Raghavendra!我认为这是一个非常严重的错误。它可能有很多不想要的行为。我打开了一个问题(),但仍然没有回复。
    Log.d("@@@ Test", "getSum=" + getSum());
private int getSum2 ()
{
    int sum=0, x=0;
    for (int i=0; i<6; i++) { x++; Log.d ("@@@ Test","x="+x); sum+=x; }
    return sum;   // always should return 21
}