Java while循环随机崩溃

时间:2020-10-28 13:52:17

标签: java loops if-statement while-loop

我有一个代码,基本上可以按照自定义顺序遍历数组。 我提供了一个代码段,该代码段说明了我的问题所在。出于某种原因,Java有时会在8上给我一个arrayoutofboundsexception,但是据我所知,while循环中以及在它之前的if语句应防止它达到8。不时。

int size = 16;
done = new boolean[size/2];
int val = (int)(Math.random()*255);
int a = 0;
if ((size/2)<val)
  val=0;
while (done[val+a]) {
  a++;
  if ((val+a) > (int)(size/2)){
    val=0;
    a=0;
  }
}
done[val+a]=true;

1 个答案:

答案 0 :(得分:1)

再次检查。如果val正好是8,则您的条件:

if ((size/2)<val)

从8开始不运行!<8。 想必您要:

if ((size/2)<=val)
相关问题