#JAVAの繰り返し処理について調べてみた
今回はjavaの繰り返し処理について思いつく方法をまとめてみようと思います。
1~10の数字の合計値
##1.for文
int sum = 0;
for (int i=0; i <=10;i++){
sum += i;
}
一番、単純な繰り返し処理かと思われます。
int i=0でintの変数を定義して、10を超えるまでiを1ずつ増やしていく処理になってます。
##2.while文
int sum =0;
int num = 1;
while(num<=10){
sum +=num;
num++;
}
条件付きでここまできたら止める繰り返し処理の時に使う書き方です。
今回みたいな範囲が決まって1ずつ足すのではfor文の方が使われるかと思います。
##3.do...while文
int sum =0;
int num=1;
do{
sum+=num;
num++;
}while(num<11)
whileとの違いは、条件式が後ろにあるので中の処理が一度は必ず実行される点にあります。
あまり使った記憶がございません!
##4.拡張for文
int sum=0;
int numList[]= {1,2,3,4,5,6,7,8,9,10};
for(int num:numList){
sum+=num;
}
配列の中身を一つずつ取り出してくれる処理になります。
結構便利です。
##5.streamAPI
// 方法1
// 配列の性質を利用して計算
var i = new int[]{0};
IntStream.rangeClosed(1, 10).forEach(e -> i[0] += e); // i[0] == 55
// 方法2
// 可変な整数値を表すAtomicIntegerを使用
var i = new AtomicInteger();
IntStream.rangeClosed(1, 10).forEach(e -> i.set(i.get() + e)); // i.get() == 55
APIです。
※コメントの中で指摘いただいたので修正しました(2021/02/14)
はじめは下記を記載していたのですが、繰り返し処理といったわけではなかったのでforEachに変更しました。
int[] numList = {1,2,3,4,5,6,7,8,9,10};
int sum = Arrays.stream(a).sum();
1~10の数字の合計値をforEachで書くのはあまり適さないようです。
ただ、コードとしてスッキリしたりできるので使ってみてください。
@jababoyさんありがとうございました!
##まとめ
いかかがだったでしょうか!
他にもこんな書き方あるよと知ってる方は教えてください!
使い分けていきましょう。