我想在某些数据和数据值中输出每个重复序列的长度。
因此,如果数据为7,7,2,9,9,9,3,3,6
我应该得到7 2, 2 1, 9 3, 3 2, 6 1
我是java的新手,无法调试我的代码,我尝试运行以下代码,但未获得完整的输出。我不知道该如何调试?
final int ARRAY_SIZE = 9;
int data[]={7,7,2,9,9,9,3,3,6};
int val=data[0];
int length=1;
for (int index = 1; index < ARRAY_SIZE; index++)
if (data[index]==val)
length++;
else
{
System.out.println(val+" with length "+ length);
val=data[index];
length=1;
}
O / P:
7 with length 2
2 with length 1
9 with length 3
3 with length 2
预期的O / P:
7 with length 2
2 with length 1
9 with length 3
3 with length 2
6 with length 1
答案 0 :(得分:2)
每次通过循环时,循环都会增加长度或打印,然后覆盖先前的值和长度。
这遗漏的是循环结束后内存中的val和length,因为没有下一个元素可以打印它们。
只需在循环结束后添加另一个println,就像这样:
final int ARRAY_SIZE = 9;
int data[]={7,7,2,9,9,9,3,3,6};
int val=data[0];
int length=1;
for (int index = 1; index < ARRAY_SIZE; index++){
if (data[index]==val)
length++;
else {
System.out.println(val+" with length "+ length);
val=data[index];
length=1;
}
}
System.out.println(val+" with length "+ length);