見出し画像

分岐「if文」

せかチャン - 世界一わかりやすい情報科チャンネルさんの
動画を見て今日も勉強をしていました。
今回は、分岐について学びました。

分岐

プログラミングの基本構造として学びましたが
分岐のイメージは、ある条件があって
条件を満たす場合は【処理1】
満たさない場合は【処理2】をする、みたいな感じです。

Javaの分岐は「if文」と「switch文」

この2つがJavaの分岐で用意されているものらしい。
今回はif文を確認していきます。

switch文についてはコチラ


if文

ifってExcel使ってた時よく使っていた記憶があります。。。
書き方を確認していきます。

if (条件式){
 【処理1】
 }else {
 【処理2】


こんなイメージらしいです。
条件式を満たす場合は【処理1】
満たされない場合は【処理2】を実行します。

※この条件式に入るのは
 boolean型が該当します

if文の特徴としては
・どちらかの【処理】しかされない事
・else以降は省略可能(条件が満たされない場合、処理されない)

割引チェッカーのソースコード

とりあえず書きます。
3,836円の買い物をしたと仮定してみます。

① class DiscountChecker {
② public static void main(String[] args){
③  int price = Integer.parseInt(args[0]);
④  double rate = 0.10;
⑤        int discount, amount;
⑥  if(price >= 3000 ) {           
⑦  discount = 300;
⑧        }   else  {
⑨        discount = 0;
⑩         }
⑪  amount = (int)((price - discount)*(1 + rate));
⑫       System.out.println("値引金額:"+ discount + "円");       
⑬  System.out.println("税込金額:" + amount + "円");    
⑭ }
⑮ }

① class DiscountChecker {

いつものクラス宣言と定義
DiscountCheckerで割引確認的な。

②public static void main(String[] args){

いつものやつ

③int price = Integer.parseInt(args[0]);

文字列を四則演算できるint型に変換するソースコード。
コンパイル後、実行するときに文字列を入力する
※ここでは例えば「3836」と入力する予定
文字列としてプログラムが受け取った後
"3836"としてargs配列に入る。
要は、コマンドラインで入力された数値に対して
文字列型からint型に変換して、変数priceに代入している。

さらに砕いて、コンパイル後、実行するときに
打つ数字(今回は3836)が priceの値になるイメージ。

④double rate = 0.10;

消費税を10%として設定するので、0.10になります。
doubleでないと、小数点以下はダメなので
intは使われません。

⑤int discount, amount;

int型の変数をここで2つ宣言
,(カンマ)で2つ宣言できます!

⑥if(price >= 3000 ) {

if文を使って値引き額を設定していく。
priceという(データ入力した数値:3836)が
3000以上なのか、という条件。
 コレ入るの注意。忘れそう。。

⑦discount = 300;

⑥の流れから、今回は3000以上なので
この文章から【discount=300】という値が設定されます。

⑧ }   else  {

もし3000以下の数値が入力された場合
このelse以下の処理がされます。
最初の }は⑥の{ を閉じてます。
else以降の文章、{ が必要なので注意。

⑨discount = 0;

もし3000未満の数字が入力された場合
【discount=0】という値が設定されます。

⑩ }

⑧の、else{ を閉じてます

⑪amount = (int)((price - discount)*(1 + rate));

まず(int)について
これは、((price - discount)*(1 + rate))
で求めた計算結果をint型にキャストして
amountに代入するものになります。
小数点以下を切り捨てるために、(int)でキャストしています。

priceの値は、入力した数値の、3836になります。
discountの値は、3000以上だったので、300になります。
(1 + rate)は消費税を乗せる計算式です。
rateは0.10と設定しているので(1.10)になります。
ということで、計算してみます。
( (3836 - 300) * ( 1.10 ) ) = 3889.6
そして、(int)型にキャストしているので小数点以下は切り捨てられます。
つまり、amount = 3889 になります

⑫System.out.println("値引金額:"+ discount + "円");   

ここは、値引金額:300円と出力結果されます。
⑦で設定されています。


⑬System.out.println("税込金額:" + amount + "円");  

ここは、税込金額:3889円と出力結果されます。
⑪で設定されています。

⑭ }

②public static void main(String[] args) {
これを閉じています。


⑮   }

① class DiscountChecker  {
これを閉じています。

else - if 文

上記のソースコードでは、2択でしたが
この条件はさらに増やせるとの事。

if (条件式1){
 【処理1】
 }else if (条件式2){
 【処理2】
     } else{
 【処理3】


こんなイメージです。
【条件式1】が満たされたら【処理1】
満たさないなら【条件式2】を満たすか判定
【条件式2】が満たされたら【処理2】
満たされないなら【処理3】がされる。
※条件式は上から順に判定されていきます。

ソースコードを追加して確認

5000円以上だったら割引額500円という設定にします。

if(price >= 5000 ) {
 discount = 500;
}   else if (price >= 3000) {
 discount = 300;
}   else {
 discount = 0;
}

こんな感じで、条件式2を追加できます。

この記事が気に入ったらサポートをしてみませんか?