標籤:
// 類比銀行系統取款
System.out.println("請輸入密碼:");
for (int i = 1; i <= 4; i++) {
if (i == 4) {
System.out.println("密碼錯誤,請取卡!");
return;
}
int password = reader.nextInt();
if (password == 111111) {
System.out.println("請輸入金額:");
break;
} else {
System.out.println("請輸入密碼:");
}
}
int amount = reader.nextInt();
while (true) {
if (amount % 100 == 0 && amount > 0 && amount < 1000) {
System.out.println("您已取出:" + amount + "元");
System.out.println("交易完成,請取卡!");
break;
} else {
System.out.println("您輸入的 金額不合法,請重新輸入:");
amount = reader.nextInt();
continue;
}
}
// 求出4家店的最低手機價格
System.out.println("第一家店的價格:");
int a = reader.nextInt();
System.out.println("第二家店的價格:");
int b = reader.nextInt();
System.out.println("第三家店的價格:");
int c = reader.nextInt();
System.out.println("第四家店的價格:");
int d = reader.nextInt();
int min = a;
if (b < min) {
min = b;
}
if (c < min) {
min = c;
}
if (d < min) {
min = d;
}
System.out.println(min);
System.out.println("請輸入4家店的價格");
int minMoney = 0;
for (int i = 1; i < 5; i++) {
System.out.println("第" + i + "家店的價格:");
int money = reader.nextInt();
if (money <= 0) {
System.out.println("輸入不合法,請重新輸入!");
i--;
continue;
}
if (i == 1 || money < minMoney) {
minMoney = money;
}
}
System.out.println("最低價格為:" + minMoney);
// 古典問題:兔子(斐波那契數列)
int i;
int m[] = new int[24];
m[0] = m[1] = 1;
for (i = 0; i < 24; i++) {
if (i == 0 || i == 1) {
System.out.println("第" + (i + 1) + "個月月兔子數量為:2隻");
} else {
m[i] = m[i - 1] + m[i - 2];
System.out.println("第" + (i + 1) + "個月兔子數量為:" + 2 * m[i] + "只");
}
}
// 輸入任一一個小於10的正整數,求出它的階乘,並用一句話輸出。
int jie = 1;
System.out.println("請輸入一個正整數:");
int num = reader.nextInt();
while (num < 0) {
System.out.println("您輸入的不是正整數,請重新輸入!");
num = reader.nextInt();
}
for (int i = 1; i <= num; i++) {
jie *= i;
}
System.out.println("階乘為:" + jie);
輸入任一一個小於10的正整數,求出它的階乘和,並用一句話輸出。
int jie = 1;
int sum = 0;
System.out.println("請輸入一個正整數:");
int num = reader.nextInt();
while (num < 0) {
System.out.println("您輸入的不是正整數,請重新輸入!");
num = reader.nextInt();
}
for (int i = 1; i <= num; i++) {
jie *= i;
sum += jie;
}
System.out.println("階乘為:" + jie + "階乘和為:" + sum);
需求描述:假設一個簡單的ATM機的取款過程為:首先提示使用者輸入密碼(password),假設預設密碼為111111,最多隻能輸入3次,超過3次則提示使用者“密碼錯誤,請取卡”,結束交易。
如果使用者密碼正確,再提示使用者選擇金額(amount),“請輸入0到6中任一數字選擇對應錢數:0 手動輸入金額,1 100元, 2 300元,3 500元, 4 1000元, 5 3000元, 6 5000元”。
輸入數字如果錯誤,提示“輸入錯誤,是否繼續 Y/N”,選擇Y重新提示輸入錢數編號,選擇N提示“輸入錯誤,請取卡!”。選擇數字為1到6,列印對應錢數,
並提示“交易完成,請取卡”。選擇數字0,ATM機只能輸出100元紙幣,自訂錢數要求最低為100元,最高為1000元。如果使用者輸入的金額符合上述要求,則列印輸出使用者取的錢數,並提示“取款完成,是否繼續Y/N”;否則輸出一句話“金額錯誤,是否繼續 Y/N”,如果使用者輸入Y,提示使用者重新選擇取款金額,如果使用者輸入 N,列印“交易取消,請取卡!”
ps:取款成功後,應該提示使用者是否繼續,總取款金額不能超過2萬
- 驗證密碼。
① 密碼正確,繼續執行下面的操作。
② 密碼錯誤3次,return。
- 取款操作。全部包含在while迴圈內部。
① 提示選擇編號。
② 根據編號給money賦值。用switch結構實現。
1~6:直接給money賦固定值。
0:手動賦值操作。
③ 驗證取款是否成功。money代表本次取款金額,moneySum代表本次取款之前的總金額。判斷moneySum+money是否>20000,3種情況:如大於20000,意味著本次取款超額,但moneySum之前並不足20000,繼續下次迴圈;如等於20000,取完本次money後,剛好滿額,money可以加到moneySum上,然後return;如小於20000,取完本次money後,仍未達到上限,money可以加到moneySum上,繼續下次迴圈。
④ 驗證是否繼續。while-if結構實現,有3種情況:Y/y,將小迴圈break,繼續執行取款大迴圈。N/n,直接return,停止所有操作。其他符號:continue,繼續執行小迴圈,重複輸入Y/N。
Scanner in = new Scanner(System.in);
System.out.println("***********歡迎使用ATM機取款業務**********");
//驗證密碼
int i = 1;
for (; i <= 3; i++) {
System.out.print("請輸入密碼:");
int pwd = in.nextInt();
if (pwd == 111111) {
System.out.println("密碼輸入正確!");
break;
}
}
if (i>3) {
//如果i大於3,表示3次輸入密碼全部錯誤。
System.out.println("密碼錯誤3次!請取卡!");
return;
}
System.out.println("************請根據序號進行取款************");
//取款操作
int moneySum = 0;//取款總金額
int money = 0;//本次取款金額
while (true) {
System.out.println("0-手動輸入金額");
System.out.println("1-100元\t\t2-300元\t\t3-500元");
System.out.println("4-1000元\t\t5-3000元\t\t6-5000元");
System.out.print("請選擇:");
int chooseNum = in.nextInt();
switch (chooseNum) {
case 1:
money = 100;
break;
case 2:
money = 300;
break;
case 3:
money = 500;
break;
case 4:
money = 1000;
break;
case 5:
money = 3000;
break;
case 6:
money = 5000;
break;
case 0:
while (true) {
System.out.print("請輸入取款金額:");
money = in.nextInt();
if (money>=100&&money<=1000&&money%100==0) {
break;
}else{
System.out.print("您輸入的金額不合法,");
continue;
}
}
break;
default:
System.out.println("序號選擇錯誤!");
break;
}
//驗證總取款金額是否超過20000
if (moneySum+money<20000) {
System.out.print("取款成功,本次取款"+money+"元,");
moneySum += money;
System.out.println("總取款"+moneySum+"元");
}else if(moneySum+money == 20000){
System.out.print("取款成功,本次取款"+money+"元,");
moneySum += money;
System.out.println("總取款"+moneySum+"元");
System.out.print("今日取款已達上限,情取卡!");
break;
}else{
System.out.println("取款失敗!每日取款上限20000元,您已取"
+moneySum+"元,還可取"+(20000-moneySum)+"元");
}
//驗證是否繼續
while (true) {
System.out.print("\n是否繼續(Y/N):");
char isGoON = in.next().charAt(0);
if(isGoON==‘y‘||isGoON==‘Y‘){
break;
}else if(isGoON==‘n‘||isGoON==‘N‘){
return;
}else{
System.out.print("輸入有誤,請選擇Y-繼續,N-退出,");
}
}
}
System.out.println("感謝您的使用!");
傑瑞教育5