- ベストアンサー
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++; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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)); } }
その他の回答 (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要素ずつに分割しておくとか。
質問者
お礼
ご回答ありがとうございます。 助かりました。
お礼
ご回答ありがとうございます。 助かりました。