イントロダクション
ほとんどのプログラム言語で共通する処理として「条件分岐」というのがあります。これは、「XXXの時は〜の処理」という場合と「◯◯◯の時は□□□」というような形で処理を分けたいときに使用します。
<実行サンプル>
補足
文字列の比較は「equals()」を使用して行います。具体的には、下のようなコードで判定を行います。
String str = "abc";
// trueがisTrueにセットされる
boolean isTrue = "abc".equals(str);
// falseがisFlaseにセットされる
boolean isFalse = "aaa".equals(str);
上記コード、変数のisTrueとisFalseにはそれぞれ「true」と「false」が入っています。
日本語で言うならば、trueは「真」、falseは「偽」です。
boolean型とif文
if文は「もし〜だったら〜」のような処理を行います。条件分岐と呼ばれる処理です。
これはよく使うし、プログラムでもちょっと間違うとえらいことになってしまうので。要注意です。
Boolean変数
プリミティブ型の変数「boolean」があります。これは値として持つのが2つだけです。
「True」と「False」だけです。時によりint型の「0」をFalse, 「1」をTrueとして扱うこともあり、実際にそのように値をセットすることもできたのは昔の話のようです。。。
それでは、これを一体何に使うのか?
if文の書き方
プログラムでのif文は下のように書きます。下の「条件式」とは巷で「論理式」とも言われているものです。結局は「TRUE」か「FALSE」のどちらかを返す式のことです。
if (条件式) { // 処理 }
<条件式のサンプル>
1 == 1; // TRUE
1 == 2; // FALSE
1 != 2; // TRUE
ture != true; // FA+SE
実際には、このように書きます。
Scanner scan = new Scanner(System.in); String str = scan.nextLine(); if ("aaa".equals(str)) { System.out.println("aaaが入力されました。"); }
これがif文です。大したことありません(笑)
でわ、次、「もし〜だったら〜、そのほかの場合はXXXX」を加えてみます。
Scanner scan = new Scanner(System.in); String str = scan.nextLine(); if ("aaa".equals(str)) { System.out.println("aaaが入力されました。"); } else { System.out.println("そのほかの値が入力されました。"); }
これをelse文とかelse句と呼びます。実際は「エルスのなかにXXXX」なんて言ったりします。
まぁ手応えがあるかと思います。
でわ、次「もし〜だったら〜、他にもしXXXだったら、XXX、そのほかの場合は○○○」
のようにちょっと複雑な処理を行いたい場合
Scanner scan = new Scanner(System.in); String str = scan.nextLine(); if ("aaa".equals(str)) { System.out.println("aaaが入力されました。"); } else if ("bbb".equals(str)) { System.out.println("bbbが入力されました。"); } else { System.out.println("そのほかの値が入力されました。"); }
上のように条件を加えてやります。
あれ?
「boolean使ってなくない?」と思った方、流石でございます。 変数にbooleanを取り出していないのです。
つまり「"aaa".equals(str)」の部分がbooleanを返却します。
それに関しては、JavaDocAPIを見るのが一番です。今回使用しているのは"aaa"のメソッド「equals」です。
「"aaa"は文字列では?」と思った方、流石でございます。「文字列=String」なのです。
だからStringクラスのメソッド(JavaDocへのリンク)が使用できるのです。
実際に使用する時には次のように書きます。
boolean flg = "hello".equals(args[0]; if (flg) { System.out.println("True")l } else { System.out.println(""False"); }
実践
以前作成したハローワールドの処理を変更してみます。
以前のソース
ublic class MainMethodTest { public static void main(String[] args) { System.out.println("Hello World"); MainMethodTest main = new MainMethodTest(); main.calculation(); } /** viを使用する時「i」を入力すると文字入力ができる*/ public void calculation() { System.out.println("1 + 1 = " +(1+1)); } }
このソースに先ほどのif文を入れてみます。
public class MainMethodTest { public static void main(String[] args) { System.out.println("Hello World"); MainMethodTest main = new MainMethodTest(); main.calculation(); // if文を追加 if (args.length == 0) { System.out.println("プログラム引数がありません"); } else if (args.length >= 3) { System.out.println("プログラム引数は2つまでです。"); } else { System.out.println("プログラム引数は1、2個あります"); } } /** viを使用する時「i」を入力すると文字入力ができる*/ public void calculation() { System.out.println("1 + 1 = " +(1+1)); } }
実行してみました。こんな感じで動きます。
ちなみに、プログラム引数の使い方は下のような手順です。※Eclipseでのやり方
Eclipseでプログラム引数を渡すときは下のように行います。
- 実行するJavaファイルを右クリック
- 実行⇒実行の構成
- 起動するクラスを選択、もしくは、検索
- 引数タブの「プログラム引数」に引数(文字列)を渡す
※プログラム引数を複数渡すときは間にスペースを入れる
例題
- boolean型の変数「flg」を「false」で初期化します。
- もし「flg」がtrueの場合は「こんにちは」をコンソール(標準出力)に出力してください。
- そうでない場合は、「さようなら」をコンソール(標準出力)に出力してください。
public class Hajimete8 {
public static void main(String[] args) {
boolean flg = false;
if (flg == true) {
System.out.println("こんにちは");
} else {
System.out.println("さようなら");
}
}
}
問題
例題のコードを変更して「こんにちは」を表示するようにプログラムを変更してください。
でわでわ。。。
関連ページ
Java Basic Step1-3
関連ページ
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic一覧
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜