Blacky Blog

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

IT プログラミング

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

投稿日:5月 29, 2019 更新日:

みなさん、こんにちは。

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

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

今回は分岐について紹介します。

フリューゲル

なんでもそうですが、物事はなにかの条件によってやることが変わりますね。例えば、今期の売り上げが目標に対して 100% 以上だったら、ボーナスがでて、100%未満だったらボーナスを出さない。このような条件をプログラミングしたいときに使うのが 分岐です。

import java.util.Scanner;

public class Sample
{
    public static void main(String[] arg)
    {
        // 売上実績実績の入力
        Scanner sc =  new Scanner(System.in);
        System.out.println("今期の売上実績を入力してください。");
        String in = sc.next();
        sc.close();

        // 文字列を数値に変換
        int est = 0;
        try{
            est = Integer.parseInt(in);
        }
        catch(Exception ex)
        {
            System.out.println("数字を入力してください。");
            return;
        };
        
        // 売上実績実績によって出力メッセージを変更
        if ( est > 10000)
            System.out.println("今期の目標達成おめでとうございます!");
        else
            System.out.println("来季は目標達成頑張りましょう!");
        return;
    }
}
売上実績が 10001 の場合
売上実績が 10000 の場合

今回は、売上実績によってメッセージを変更するプログラムにしました。新しいところは、ユーザーに入力を促す処理です。

対話型のプログラム

        // 売上実績実績の入力
        Scanner sc =  new Scanner(System.in);
        System.out.println("今期の売上実績を入力してください。");
        String in = sc.next();
        sc.close();

上記の箇所は、Scanner クラスを使って、ユーザーに入力を促します。sc.next メソッドは、入力するまで待機します。

その後、ユーザーが入力すると処理が継続します。

また前回紹介したように、以下の処理では、入力された文字列データを int 型に変換しています。

        // 文字列を数値に変換
        int est = 0;
        try{
            est = Integer.parseInt(in);
        }
        catch(Exception ex)
        {
            System.out.println("数字を入力してください。");
            return;
        };

ポイントは、入力は数値以外の可能性も考慮し、例外処理を実装しています。数値以外が入力されるとエラーメッセージを表示し、プログラムは終了します。

1. If / Else 文

    // 売上実績実績によって出力メッセージを変更
    if ( est > 10000)
        System.out.println("今期の目標達成おめでとうございます!");
    else
        System.out.println("来季は目標達成頑張りましょう!");

今回のメインの部分です。If / Else を使い、売上実績の数値である “est” 変数の値によってメッセージを分けています。

  1. est が 10000 より大きい場合、”今期の目標達成おめでとうございます!” を出力する。
  2. 1. 以外の場合、”来季は目標達成頑張りましょう!” を出力する。

このように、1つの条件により2つの処理を実装できるようになります。

If / Else if / Else

続いて、2つ以上の条件を実装する方法を紹介します。

        // 売上実績実績によって出力メッセージを変更
        if (est > 15000)
            System.out.println("素晴らしい実績を残されました!!!ボーナスがあります。おめでとうございます!");
        else if ( est > 10000)
            System.out.println("今期の目標達成おめでとうございます!");
        else
            System.out.println("来季は目標達成頑張りましょう!");

このように est が 16000 の場合の条件が増えています。else if を使うことでどんどん条件を増やすことができます。処理は上から順番に処理されていきます。

まとめ

分岐から if / else if / else を紹介しました。次回は Switch を紹介します。

プログラミングは地道です。世の中の機械や自動の仕組みは複雑な条件をたくさん書いてあるわけですが、逆に言うと書ければどんな仕組みも作れるわけです。素晴らしいことだと思いませんか。

フリューゲル

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

執筆者:


comment

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

関連記事

[初心者向け] Java 独学: 1. 基礎を理解する

では最初に Java の基礎を学びます。 Java って難しいイメージないですか? [初心者向け] Java 独学: 1. 基礎を理解する このシリーズは、Java を独学で学んでいただける方法で、初 …

ネットワークエンジニアとしての基礎: 2. ハードウェアの理解: スイッチ

みなさん、こんにちは。 このシリーズは、ネットワークエンジニアとしてスキルを身に着け、転職する方やフリーランスとして働く方に向け、ネットワークエンジニアとして必要なスキルを学ぶための入門シリーズです。 …

ネットワークエンジニアとしての基礎: 1. インフラストラクチャの理解: 概念

みなさん、こんにちは。 このシリーズは、ネットワークエンジニアとしてスキルを身に着け、転職する方やフリーランスとして働く方に向け、ネットワークエンジニアとして必要なスキルを学ぶための入門シリーズです。 …

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

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

[初心者向け] Java 独学: 4. オブジェクト指向: メソッド

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