新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

javaで遊んでました。

2016-11-03 22:59:21 | パソコン

柴田望洋先生の本ですが、「明解Java入門編」の演習に、こんなのがありました。3個の整数を入力。

それを小さい順に出力する。3個の数字を比較するだけの問題ですが、理論的でない自分は少し

難しかったです。最初はif文を単純に組み合わせると、これが分かりづらい。

import java.util.Scanner;

public class Ensyu3_16 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        Scanner stdIn = new Scanner(System.in);
        System.out.println("最初の整数を入力");
        int a = stdIn.nextInt();
        System.out.println("次の整数を入力");
        int b = stdIn.nextInt();
        System.out.println("最後の整数を入力");
        int c = stdIn.nextInt();
        
        if ( a < b){
            if ( b < c){
                System.out.println(" "+a+" "+b+" "+c);
            }
            else {if ( a < c ){
                System.out.println(" "+a+" "+c+" "+b);
                }
                else {
                    System.out.println(" "+c+" "+a+" "+b);
                }
                    
            }
        }
    else if ( a < c){
            System.out.println(" "+b+" "+a+" " +c);
        }
        else if (b < c){
            System.out.println(" "+b+ " "+c+" "+a);
            
        }
        else {
            System.out.println(" "+c+" " +b+" " +a);
        }
            

    }

}

上のプログラムをよく見てみると、早い話が6通りの場合がある。それを出力するだけ。

import java.util.Scanner;

public class Ensyu3_16 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        Scanner stdIn = new Scanner(System.in);
        System.out.println("最初の整数を入力");
        int a = stdIn.nextInt();
        System.out.println("次の整数を入力");
        int b = stdIn.nextInt();
        System.out.println("最後の整数を入力");
        int c = stdIn.nextInt();

        if (a < b && b < c) System.out.println(" "+a+" "+b+" "+c);
        if (a < c && c < b) System.out.println(" "+a+" "+c+" "+b);
        if (c < a && a < b) System.out.println(" "+c+" "+a+" "+b);
        if (b < a && a < c) System.out.println(" "+b+" "+a+" "+c);
        if (c < b && b < a) System.out.println(" "+c+" "+b+" "+a);
        if (b < c && c < a)  System.out.println(" "+b+" "+c+" "+a);
            

    }

}
となりそうです。結果は上も下も同じようです。自分は下のほうがすっきりと思いました。でも

上で書いてから、下が出てきたんですが。

この場合は、3個の数値が違うものが入力されている場合は、良いのですが、同じ数値が

2個以上あると表示しません。条件に=を加えないといけないようです。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Windows7 と Windows10 の ... | トップ | 紅茶かコーヒーか? »
最新の画像もっと見る

パソコン」カテゴリの最新記事