Blacky Blog

外資系IT企業でエンジニアをしています。 ここでは自分が読んだ本、勉強していることなど None Tech の情報を発信しています。

IT プログラミング

[初心者向け] Java 独学: 3. フロー制御: ループ

投稿日:6月 1, 2019 更新日:

みなさん、こんにちは。

このシリーズは、Java を独学で学んでいただける方法で、初心者でも開発者としてのベースの知識ができます。実際に手を動かせるよう環境設定の方法も載せています。Java のサイトや本を読んで学んだだけの方でも、挫折せず、自分で手を動かせるような構成にしていますのでおすすめの方法です。

[初心者向け] Java 独学: 3. フロー制御: ループ

今回は、ループ処理について紹介します。

CodeCampGATE

ループ処理は、繰り返し処理したいときに使います。具体的には、配列のデータを順番に取り出して処理するときに使います。

import java.util.ArrayList;

public class Lesson3_loop
{
    public static void main(String[] arg)
    {
        ArrayList<String> list = new ArrayList<String>();
        list.add("aaaa");
        list.add("bbbb");
        list.add("cccc");
        
        // Loop1.for
        System.out.println("Loop1.for:");
        for(int i =0; i<list.size();i++)
            System.out.println(list.get(i));
        
        // Loop2.foreach
        int[] list2= {1,2,3};
        
        System.out.println("Loop2.foreach:");
        list.forEach(item -> System.out.println(item));

        // Loop3. while / do-while
        System.out.println("Loop3. do-while:");
        int current = 0;
        do{
            System.out.println(list.get(current));
            current++;
        }while(current < list.size() );

        System.out.println("Loop3. while:");
        current = 0;
        while(current < list.size() ){
            System.out.println(list.get(current));
            current++;
        };
        return;
    } 
}

ループ処理は主に三種類あります。for 文、foreach 文、do-while 文です。上記はその 3 つを使って同じ配列のデータを出力したものです。なので結果はすべて同じですね。それぞれ見ていきましょう。

ループ処理1: for

実は、配列の記事のサンプルでループ処理を使いましたが気づきましたでしょうか。今回の箇所は以下の部分です。

        // Loop1.for
        System.out.println("Loop1.for:");
        for(String item : list)
            System.out.println(item);

for 文は、カッコの中にループの回し方を書いています。上記は、list の一番上からデータを一つ取り出し、String 型の item に格納し、 System.out.println(item);処理が実行され、次のデータへ行き、 最後のデータまで一つづつ 処理されるイメージです。

また for 文のかっこ内の書き方は以下のようにも書けます。

        for(int i =0; i<list.size();i++)
            System.out.println(list.get(i));

実行結果は同じです。この書き方のほうが一般的かもしれません。

コードの意味ですが、int i =0 は i 変数が 0 から始まり、i<list.size()は、i の値が list のデータ数より小さい間処理する(=i の値が list のデータ数となった時点で終了する)という意味で、i++ は i の値を 1 づつ増やすという意味です。

つまり、list の 0 番から 2 番まで出力され、3 番になったら for は終了します。

CodeCampGATE

ループ処理 2: foreach

続いて foreachです。

       list.forEach(item -> System.out.println(item));

これは、 ArrayList<> 型のデータで使えるメソッドです。int[] や String[] では使えません。つまり、使えるかどうかは、配列の型によります。

item -> System.out.println(item) の意味ですが、item という変数を -> の左側に書いて、右側に処理を書きます。item という名前の付け方は好きなものを付けていいです。変数に list のデータが一つづつ渡されます。

ループ処理 3: while, do while

最後に while 文と do while 文です。この2つの違いは1回目の処理をいつ実行するかタイミングが異なります。

        System.out.println("Loop3. while:");
        current = 0;
        while(current < list.size() ){
            System.out.println(list.get(current));
            current++;
        };

while 文は、かっこの条件を満たす間は実行するという意味です。current < list.size() は、current の値が、list のデータ数より小さい間は処理するという意味です。

current++; は current に 1 を足しています。

続いて、do-while文です。

        // Loop3. while / do-while
        System.out.println("Loop3. do-while:");
        int current = 0;
        do{
            System.out.println(list.get(current));
            current++;
        }while(current < list.size() );

違いは、do-while は最初にまず処理を実行します。初回の処理を実行したのち、while のかっこの条件を満たすかどうか評価されます。

まとめ

いかがでしょうか。繰り返し処理は非常によく使います。短いコードで多くの処理が実行されるためこれぞプログラミングと実感できますね。

CodeCampGATE

-IT, プログラミング
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[初心者向け] Java 独学: はじめに

皆さんこんにちは、Blackyです。 これらからシリーズでプログラミング言語の Java を学んでいただける記事を書いていきます。Java って難しいイメージないですか? これを読めば、Java を独 …

Java 入門: 事前準備

最初に、コードを実行できる環境を整えます。 今回は Windows 10 のパソコンにインストールする例です。 1.Visual Studio Code のインストール 1. https://code …

[初心者向け] Java 独学: 3. フロー制御: 分岐: その 2

みなさん、こんにちは。 このシリーズは、Java を独学で学んでいただける方法で、初心者でも開発者としてのベースの知識ができます。実際に手を動かせるよう環境設定の方法も載せています。Java のサイト …

[初心者向け] Java 独学: 2. データ型、変数、式を理解する: データ型を変換する

みなさん、こんにちは。 このシリーズは、Java を独学で学んでいただける方法で、初心者でも開発者としてのベースの知識ができます。実際に手を動かせるよう環境設定の方法も載せています。Java のサイト …

[初心者向け] Java 独学: 4. オブジェクト指向: メンバー変数

みなさん、こんにちわ。 このシリーズは、Java を独学で学んでいただける方法で、初心者でも開発者としてのベースの知識ができます。実際に手を動かせるよう環境設定の方法も載せています。Java のサイト …