Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 757

【Java】二次元配列を拡張for文で回す方法

$
0
0

拡張for文

for(変数名配列){}

:の右の配列を左の変数に代入しながらループを回すという手法を組み合わせて二次元配列を展開するにはどうしたら良いか、一瞬迷ったのと、PHPのように

foreach($datasas$key=>$value){ for($i=0;$i<count($value);i++){$value[i]=0;}}

foreachを使うことも思い浮かべたけど、javaでは別のオブジェクトを生成しないといけないみたいなので、なんとかしたいなと思いました。

拡張forを2回書けば済む話

publicclassControl{publicstaticvoidmain(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(intvalue:data){if(value==0){System.out.print("  ");}else{System.out.print("* ");}}System.out.println("");// 入れ子になっている配列の展開が終わったら改行}}}
実行結果
          * * * * *   
            * * * *   
          * * * * *   
        * * * * * *   
      * * * * *   *   
    * * * * *         
      * * *           
        *             

別に悩むほどのことでもなかったけど、foreachが別のオブジェクトを生成しないと使えないという点は少し不便に感じたし、「それも覚えないといけないのか」と思うとちょっとびっくりしたので、メモ書きとして残しておきます。


Viewing all articles
Browse latest Browse all 757

Trending Articles