Java(条件演算子)

Java

Q1
2つの数値を読み込んでその小さい方の値を表示せよ。(if文を使う)
[実行例]
整数A:3 [エンター]
整数B:5 [エンター]
小さい方の数は3です。
[解答例]

01package javalessons;
02import java.util.Scanner;
03public class Jn1 {
04  public static void main(String[] args) {
05    Scanner scan=new Scanner(System.in);
06    System.out.print("整数A:");
07    int a=scan.nextInt();
08    System.out.print("整数B:");
09    int b=scan.nextInt();
10    int min;
11    if(a<b){
12      min=a;
13    }else{
14      min=b;
15    }
16    System.out.println("小さい方の数は"+min+"です。");
17    scan.close();
18  }
19}

条件演算子

上記の例題はある条件(a<b)によって変数minに代入する値をaかbかに決める処理である。
こういった場合は条件演算子(三項演算子)を使ってよりシンプルにかける。

条件演算子を用いるとQ1は以下のように書ける。

01import java.util.Scanner;
02public class Jn1_1 {
03  public static void main(String[] args) {
04    Scanner scan=new Scanner(System.in);
05    System.out.print("整数A:");
06    int a=scan.nextInt();
07    System.out.print("整数B:");
08    int b=scan.nextInt();
09    int min=a<b ? a:b;
10    System.out.println("小さい方の数は"+min+"です。");
11    scan.close();
12  }
13}

if〜else文がなくなってシンプルになったのがわかる。

上記の例ではminに一度代入しているがそれすらも省略できる。
(結合則の優先度が+よりも低いので今回はカッコでくくる必要あり)

01import java.util.Scanner;
02public class Jn1_1 {
03  public static void main(String[] args) {
04    Scanner scan=new Scanner(System.in);
05    System.out.print("整数A:");
06    int a=scan.nextInt();
07    System.out.print("整数B:");
08    int b=scan.nextInt();
09    System.out.println("小さい方の数は"+(a<b ? a:b)+"です。");
10    scan.close();
11  }
12}

条件演算子はシンプルに記述できるので慣れてくるととても便利だ。どんどん使っていこう。

Q2.0~9までの値をランダムに生成し、それが偶数か奇数かを判定せよ。
[実行例]
7は奇数です。

コメント

タイトルとURLをコピーしました