スキャナーを使用したコードについて見ていく。
スキャナーはユーザーが文字を入力することができるため、よく使用される。
今回はお買い物にも利用できる「割引」について扱うことにする。
簡単な計算だから比較的取り組みやすいと思う。
それでは早速行ってみよー。
スキャナーについては以下参照。
スキャナー(Scanner)とは?取り込み方についても Vol.35-プロショ
割引計算のコード
早速コードを見ていくことにする。
スキャナーを使用する前に割引計算だけを行ったコードを見ていくことにする。
public class Discount {
public static void main(String[] args) {
double d,total,price,rate;
price=650;
d=30;
System.out.println(“値段は”+price+”円”);
System.out.println(“割引は”+d+”%”);
rate=100-d;
total=(650*rate)/100;
System.out.println(“割引後の値段は”+total+”円”);
}
}
以上を実行すると以下の結果が得られる。
割引は30.0%
割引後の値段は455.0円
d=30;というのは割引(discount)が30(%)ということを示しているもの。
30%引きということは元の値段から考えると70%の値段になっているということ。
1000円の商品が30%引き⇒300円引き
1000円から300円引くと700円⇒元の値段(1000円)の70%の値段になった。
rateは70になっているけれど、rateの単位は「%」になっている。
そのため、計算できるように「70%」を変換する必要がある。
よって70/100(70÷100)をするということになる。
夕方の割引セールで使えるかもしれないし使えないかもしれない。
スキャナーを使用する
スキャナーを使用することで、上のように「price=650」などとコード内で設定しなくてもユーザーから文字を入力できるようになる。
import java.util.Scanner;
public class Discount {
public static void main(String[] args) {
double price,d,rate,total;
Scanner s = new Scanner(System.in);
System.out.print(“値段を入力:”);
price = s.nextDouble();
System.out.print(“割引を入力(%):”);
d=s.nextDouble();
System.out.println(“値段は”+price+”円”);
System.out.println(“割引は”+d+”%”);
rate=100-d;
total=(price*rate)/100;
System.out.println(“割引後の値段は”+total+”円”);
}
}
スキャナーを使用しなかったものと主に異なる部分をピンクのマーカーで示した。
以上を実行すると以下の結果が得られる。
※値段には「562」、割引には「20」と入力
割引を入力(%):20
値段は562.0円
割引は20.0%
割引後の値段は449.6円
まずは黄色の部分の「値段を入力:」という部分が表示される。
値段を入力すると次に「割引を入力(%):」という部分が表示される。
この2つを入力すると計算されたデータが表示されるようにした。
消費税を含んだ計算式
消費税を含んだ計算式を作ることもできる。
扱う部分は「total=(price*rate)/100;」のところ。
このまま計算すると割引後の結果が出る。
食料品ということを考えて軽減税率の8%で考えてみることに。
更に消費税8%とした計算結果を表示させようとすると、上記の結果に「1.08」を掛けると消費税込みの金額が出る。
⇒「0.08」だけをかけてしまうと、割引後の値段の8%の金額しか表示されない。
割引後の値段に消費税を上乗せしたいから、必ず「1.08」を掛ける。
実際に1000円とかで計算してみると分かるかも。
total=(price*rate)/100*1.08;
System.out.println(“割引後の値段は”+total+”円(税込み)”);
追加した部分は赤色部分のみ。
値段を「1000」と入力して割引を「20」とした結果が以下。
割引を入力(%):20
値段は1000.0円
割引は20.0%
割引後の値段は864.0円(税込み)
20%引きの計算だと「800円」になるが、800円に消費税8%が上乗せされて864円になっているのが分かる。
最後に
夕方くらいにスーパーに行くと3割引きや半額シールがよく貼られている。
Javaで計算すると今回のような形でコードを組める。
消費税も入れてみたけれど、10%で計算したかったら「1.08」の部分を「1.1」にすればよい。
コメント