• ベストアンサー

3回ごとに出力

3回ごとに特定の処理(3要素ずつファイルに出力)を行いたいと思っています。 そのためにはif(j%3 == 0) という判定を入れればよいと思いますが 余りの部分に対しても処理を行うにはどうすればよいでしょうか。 例えば下記のarray(ArrayListのオブジェクト)が10個の要素を持っていたとして 3回ずつファイルを出力したとすると要素が1個あまると思うのですが 10番目の要素も出力したいと思っています。 int j =1; for(int i=0;array.size();i++) { if(j%3 == 0) {     } j++; }

質問者が選んだベストアンサー

  • ベストアンサー
noname#147388
noname#147388
回答No.2

#1 のをもっと簡潔にした。 List<Integer> data = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); for (int i = 0, j = 1, k = data.size(); i < k; i++, j++) { if (j % 3 == 0 || j == k) { System.out.println(data.get(i)); } }

unko347
質問者

お礼

ご回答ありがとうございます。 助かりました。

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

単純に、最後の要素であればという条件も加えればいいのではないでしょうか。 for (int i = 0, len = array.size(); i < len; i++) { if ((i + 1) % 3 == 0 || i == (len - 1)) { } } もしくは、先に3要素ずつに分割しておくとか。

unko347
質問者

お礼

ご回答ありがとうございます。 助かりました。

関連するQ&A