printされるa配列のIndexは常にインクリメントされるべきであるので,
function test(){
int a[] = new int[]{1,2,3,4,5,6,7,8};
int b[] = new int[]{2,5,1};
int a_index = 0;
for (int x : b) {
for (int i = 0; i < x; i++) {
System.out.print(a[a_index]);
if (i < x - 1) {
System.out.print(" ");
} else {
System.out.println();
}
a_index=a_index+1;
}
}
}
とかですかね?
出力は変わらないはずですけど改行の出力は,問題の意図的にはこっちの方が意味が通りますかね?
function test(){
int a[] = new int[]{1,2,3,4,5,6,7,8};
int b[] = new int[]{2,5,1};
int a_index = 0;
for (int x : b) {
for (int i = 0; i < x; i++) {
System.out.print(a[a_index]);
if (i < x - 1) {
System.out.print(" ");
}
a_index=a_index+1;
}
System.out.println();
}
}