拡張for文
for(型 変数名: 配列){
}
:の右の配列を左の変数に代入しながらループを回すという手法を組み合わせて二次元配列を展開するにはどうしたら良いか、一瞬迷ったのと、PHPのように
foreach($datas as $key => $value){
for($i = 0; $i < count($value); i++){
$value[i] = 0;
}
}
foreachを使うことも思い浮かべたけど、javaでは別のオブジェクトを生成しないといけないみたいなので、なんとかしたいなと思いました。
拡張forを2回書けば済む話
public class Control {
public static void main(String[] args) {
int[][] datas = {
{0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,1,1,1,1,1,0},
{0,0,0,0,0,0,1,1,1,1,0},
{0,0,0,0,0,1,1,1,1,1,0},
{0,0,0,0,1,1,1,1,1,1,0},
{0,0,0,1,1,1,1,1,0,1,0},
{0,0,1,1,1,1,1,0,0,0,0},
{0,0,0,1,1,1,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0},
};
for(int[] data : datas ) {
for(int value : data) {
if(value == 0) {
System.out.print(" ");
} else {
System.out.print("* ");
}
}
System.out.println(""); // 入れ子になっている配列の展開が終わったら改行
}
}
}
実行結果
* * * * *
* * * *
* * * * *
* * * * * *
* * * * * *
* * * * *
* * *
*