---
tags: JAVA菜鳥筆記
---
# Java DAY01
## 課本例題01:
### 設計一個Java 的購物程式,利用「price」變數自定價格。若價格超過一仟元的部份,打八折計算。例如:買了1500 元的物品,則應付1400 元。
#### 程式碼
```javascript=
DecimalFormat df = new DecimalFormat("0.00");
System.out.println("請輸入您的商品價格");
int price = new Scanner(System.in).nextInt() ;
if (price<=1000) {
double money = price;
System.out.println("您商品的價格為:"+df.format(money));
}else {
double money = (price-1000)*0.8+1000;
System.out.println("您商品的價格為:"+df.format(money));
}
```
:::success
此程式碼能順利運行,假設輸入的數為1000,因為此數值未超過1000,所以會跑到price<1000的if程式內,所以輸出結果為=>您商品的價格為:1000.00;若輸入的數為2600,因為數值超過1000,會跑到else的程式內,所以會輸出=>您商品的價格為:2280.00。
:::
## 課本例題02:
### 設計一個程式,計算所得稅,若收入在30 萬以下,繳交6% 的稅率,而超過30 萬元的部份,則交13% 的稅率,例如:收入為40萬元,則需繳3萬1仟元的稅金。
#### 程式碼
```javascript=
DecimalFormat df = new DecimalFormat("0.00"); //DecimalFormat這套件功能是讓輸出的數字自動4捨5入到設定的小數點後幾位
System.out.println("請輸入您的收入");
int income = new Scanner(System.in).nextInt() ;
if (income<=300000) {
double tax = income*0.06;
System.out.println("您所需繳的稅金為:"+df.format(tax));
}else {
double tax = (income-300000)*0.13+18000; //+18000是因為超過的部分才要乘以0.13,原本300000的部分一樣是乘以0.6,故簡略計算
System.out.println("您需繳的稅金為:"+df.format(tax));
}
```
:::success
此程式碼能順利運行,假設輸入的值為300000,因為其<=300000,所以會跑到if的程式內,輸出的結果=>您所需繳的稅金為:18000.00,若輸入的數值為462000,則輸出的結果=>您需繳的稅金為:39060.00。
:::
## 課本例題03:
### 設計一個購物程式,請自行設定價格,並顯示應付金額。若價格超過5000元以上,則打7折,若是4000-4999元之間,則打8折,若是3000-3999元之間,則打9折,3000元以下不打折。
#### 程式碼
```javascript=
DecimalFormat df = new DecimalFormat("0.00");
System.out.println("請輸入您的商品價格");
int price = new Scanner(System.in).nextInt() ;
if (price>=5000) {
double money = price*0.7;
System.out.println("您商品的價格為:"+df.format(money));
}else if (price>=4000 & price<5000) {
double money = price*0.8;
System.out.println("您商品的價格為:"+df.format(money));
}else if (price>=3000 & price<4000) {
double money = price*0.9;
System.out.println("您商品的價格為:"+df.format(money));
}else {
double money = price;
System.out.println("您商品的價格為:"+df.format(money));
}
```
:::success
此程式碼能順利運行,假設輸入的值為8000,因為其>=5000,所以會跑到if的程式內,輸出結果為=>您商品的價格為:5600.00,若輸入數值為4580,因其>=4000且小於5000,所以會跑到else if (price>=4000 & price<5000)的程式內,輸出結果為=>3664.00,後續就不一一說明結果。
:::
## 本日心得
### 在本次使用選擇性敘述時if、else和else if十分好用,可在兩項及多項的條件內去執行相對應的程式,搭配Scanner做使用者輸入並輸出結果,讓程式小白的我也可以做出有一點點功能的程式,下次上Java估計會學剩餘的選擇性敘述,之後遇到的問題也會補充上去(畢竟這是前幾天的上課內容,我沒把容易出問題的地方記起來)。