[ガイドコース/簡単学習のJava 1]14マイアプリケーションの作成(2)-条件文、レイアウト、繰り返し文


Boostレッスンを簡単に学ぶJava 1



Chaper 14


14-5. マイアプリケーションの作成2



学びやすいjava 1コースで学んだ内容に基づいて、私たちが直面している問題を解決するプログラムを作成しました.
もし問題が私の知っていることや学んだことで解決できなければ、その不便を解消するために、私は努力して勉強します.
今回の講座では、問題を解決する際に発生する可能性のある不便を解消するためのツールを学びます.

14-6. アプリケーション条件文の作成


制御文は、条件に応じてプログラムを変更する実行プロセスです.
JAvaには2つの制御文があり、大体条件文と重複文があります.
条件文を用いてプログラムを記述します.

条件文


  • MySAppプロジェクトでAccountingIFAppクラスを作成します.
  • AccountingIFApp.JAvaソースコード

    public class AccountingIFApp {
     
        public static void main(String[] args) {
     
            double valueOfSupply = Double.parseDouble(args[0]);
            double vatRate = 0.1;
            double expenseRate = 0.3;
            double vat = valueOfSupply * vatRate;
            double total = valueOfSupply + vat;
            double expense = valueOfSupply * expenseRate;
            double income = valueOfSupply - expense;
             
            double dividend1;
            double dividend2;
            double dividend3;
             
            if(income > 10000.0) {
                dividend1 = income * 0.5;
                dividend2 = income * 0.3;
                dividend3 = income * 0.2;
            } else {
                dividend1 = income * 1.0;
                dividend2 = income * 0;
                dividend3 = income * 0;
            }
     
            System.out.println("Value of supply : " + valueOfSupply);
            System.out.println("VAT : " + vat);
            System.out.println("Total : " + total);
            System.out.println("Expense : " + expense);
            System.out.println("Income : " + income);
            System.out.println("Dividend 1 : " + dividend1);
            System.out.println("Dividend 2 : " + dividend2);
            System.out.println("Dividend 3 : " + dividend3);
     
        }
     
    }
    もし、問題の状況が新しい条件になったと仮定します.
    収益が1万ウォンを超える場合のみ、既存の分配率で収益を分配することができる.
    収益が1万元以下の場合、すべての収益を1番のパートナーに割り当てるしかありません.
    私たちが学んだことだけで問題を解決したいなら、
  • 収入が1万元を超える場合に使用するプログラム
  • 収益が1万元未満の場合に使用するプログラム
  • このように2つのプログラムをします.
    この場合、条件文を使用すると、すべての問題を1つのプログラムで解決できます.

    AccountingIFApp.Javaソース分析

    if(income > 10000.0) {
                dividend1 = income * 0.5;
                dividend2 = income * 0.3;
                dividend3 = income * 0.2;
            } else {
                dividend1 = income * 1.0;
                dividend2 = income * 0;
                dividend3 = income * 0;
            }
    }
  • ビットコード収入が1万元を超える場合、既存の分配率によって収益を分配し、
  • .
  • 収益が1万ウォン以下のゴンウは、1番のパートナーの収益にのみ割り当てられるコードだ.
  • 14-7. アプリケーション配列の作成


    アレイ


    mainメソッドのargsパラメータは文字列配列であり、複数のString資料を含むことができる.
    配列は複数の同一資料型を収容できるオブジェクトである.
  • MYAPPプロジェクトでAccountingArrayAppクラスを作成します.
  • AccountingArrayApp.JAvaソースコード

    public class AccountingArrayApp {
    
    	public static void main(String[] args) {
    		double valueOfSupply = Double.parseDouble(args[0]);
            double vatRate = 0.1;
            double expenseRate = 0.3;
            double vat = valueOfSupply * vatRate;
            double total = valueOfSupply + vat;
            double expense = valueOfSupply * expenseRate;
            double income = valueOfSupply - expense;
             
            double[] dividendRates = new double[3];
            dividendRates[0] = 0.5;
            dividendRates[1] = 0.3;
            dividendRates[2] = 0.2;
             
            double dividend1 = income * dividendRates[0];
            double dividend2 = income * dividendRates[1];
            double dividend3 = income * dividendRates[2];
     
            System.out.println("Value of supply : " + valueOfSupply);
            System.out.println("VAT : " + vat);
            System.out.println("Total : " + total);
            System.out.println("Expense : " + expense);
            System.out.println("Income : " + income);
            System.out.println("Dividend 1 : " + dividend1);
            System.out.println("Dividend 2 : " + dividend2);
            System.out.println("Dividend 3 : " + dividend3);
    
    	}
    
    }

    AccountingArrayApp.Javaソース分析

    double rate1 = 0.5;
    double rate2 = 0.3;
    double rate3 = 0.2;
           
    double dividend1 = income * rate1;
    double dividend2 = income * rate2;
    double dividend3 = income * rate3;
  • 倍の税率に相当する部分を変数化した.
  • の場合、配当のパートナーがますます多くなると、配当率変数を増やし続けるべきです.
  • 割当率変数を組み合わせて表す場合は、追加を続行する必要はありません.
    配列を使用しましょう.
    double[] dividendRates = new double[3];
  • 配列は、データ型の横にカッコ[]を付けて表示されます.
  • インスタンスを作成する場合は、アレイの長さを指定する必要があります.
  • dividendRates[0] = 0.5;
    dividendRates[1] = 0.3;
    dividendRates[2] = 0.2;
           
    double dividend1 = income * dividendRates[0];
    double dividend2 = income * dividendRates[1];
    double dividend3 = income * dividendRates[2];
  • 配列内のデータはインデックスによってアクセスできます.
  • 配列のインデックスはゼロから始まります.
  • プログラムの機能は変わっていないが,分配率を一つの配列にまとめることで表現することで,各分配率が相互に関連付けられた情報であり,変数の数も減少していることが明らかになった.

    14-8. アプリケーションの重複の作成


    複文


    条件が真の場合、繰り返し文は対応するセグメントを繰り返し続けます.配列と複文を利用してプログラムをより簡潔にすることができる.
  • MySAppプロジェクトでAccountingArrayLoopAppクラスを作成します.
  • AccountingArrayLoopApp.JAvaソースコード

    public class AccountingArrayLoopApp {
     
        public static void main(String[] args) {
     
            double valueOfSupply = Double.parseDouble(args[0]);
            double vatRate = 0.1;
            double expenseRate = 0.3;
            double vat = valueOfSupply * vatRate;
            double total = valueOfSupply + vat;
            double expense = valueOfSupply * expenseRate;
            double income = valueOfSupply - expense;
             
             
     
            System.out.println("Value of supply : " + valueOfSupply);
            System.out.println("VAT : " + vat);
            System.out.println("Total : " + total);
            System.out.println("Expense : " + expense);
            System.out.println("Income : " + income);
             
            double[] dividendRates = new double[3];
            dividendRates[0] = 0.5;
            dividendRates[1] = 0.3;
            dividendRates[2] = 0.2;
             
                 
            int i = 0;
            while(i < dividendRates.length) {
                System.out.println("Dividend : " + (income*dividendRates[i]) );
                i = i + 1;
            }
             
     
        }
     
    }

    AccountingArrayLoopApp.Javaソース分析

    int i = 0;
    while(i < dividendRates.length) {
                System.out.println("Dividend : " + (income*dividendRates[i]) );
                i = i + 1;
    }
  • 、カッコ内の条件が真の場合、文はブロック内の操作を繰り返します.
  • i変数は繰り返し回数を表し、0に初期化して使用します.
  • 配列の長さに従って、同業者に配当金を計算する複文を繰り返す.
  • タイルのみを使用する場合
    double dividend1 = income * dividendRates[0];
    double dividend2 = income * dividendRates[1];
    double dividend3 = income * dividendRates[2];
    
    System.out.println("Dividend 1 : " + dividend1);
    System.out.println("Dividend 2 : " + dividend2);
    System.out.println("Dividend 3 : " + dividend3);
  • ビットコードは、同業者に割り当てられた金額を収益*割当率で3回繰り返します.
  • 出力
  • 配当額の作業も3回繰り返した.
  • 繰り返し使用時
    double[] dividendRates = new double[3];
    dividendRates[0] = 0.5;
    dividendRates[1] = 0.3;
    dividendRates[2] = 0.2;
           
    int i = 0;
    while (i < dividendRates.length) {
                System.out.println("Dividend : " + income * dividendRates[i]);
                i = i + 1;
    }
  • while文を使用して、3回の繰り返し作業を簡潔に変更しました.
  • パートナーが100万人に増えれば、従来の方式では2億行を超えるコードが増加し、複文を使うと3人でも100万人でも、いつも5行のコードが増加します.
  • ガイドコース
    https://www.boostcourse.org/opencourse
    Boostレッスンを簡単に学ぶJava 1
    https://www.boostcourse.org/cs126