ATM取款机循环和选择语句,两种方式。

来源:互联网 发布:2017淘宝买不到qq号了 编辑:程序博客网 时间:2024/06/06 04:01
import java.util.Scanner;public class Zlianxi72926 {public static void main(String[] args) {// TODO Auto-generated method stubScanner input = new Scanner(System.in);System.out.println("\tATM取款业务");System.out.println("插上卡后请输入密码:");int password = input.nextInt();int k = 0;int sum = 0;int amount = 0;for (int i = 0; i < 3; i++) {if (password != 111111) {System.out.println("请重新输入:");k++;if (k == 3) {System.out.println("密码错误,请取卡!!");return;}password = input.nextInt();} else {break;}}x2: while (true) {System.out.println("请选择金额,请输入0到6中任意数字选择对应钱数!");System.out.println("0.——手动输入金额\n1.——100元\n2.——300元\n3.——500元\n4.——1000元\n5.——3000元\n6.——5000元");int num = input.nextInt();String jx;x1: while (true) {switch (num) {case 0:break x1;case 1:amount = 100;sum += amount;break;case 2:amount = 300;sum += amount;break;case 3:amount = 500;sum += amount;break;case 4:amount = 1000;sum += amount;break;case 5:amount = 3000;sum += amount;break;case 6:amount = 5000;sum += amount;break;default:System.out.println("输入错误,是否继续Y/N");jx = input.next();if (jx.equals("Y") || jx.equals("y")) {System.out.println("0.——手动输入金额\n1.——100元\n2.——300元\n3.——500元\n4.——1000元\n5.——3000元\n6.——5000元");num = input.nextInt();continue;} else {System.out.println("输入错误,不继续输入,请取卡!");return;}}System.out.println("取钱总额数:" + sum + "元");if (sum > 20000) {sum -= amount;System.out.println("加上本次取钱的金额,总金额超过20000,最多可以取" + (20000 - sum) + "元" + ",请选择是否继续Y/N");jx = input.next();if (jx.equals("Y") || jx.equals("y")) {System.out.println("0.——手动输入金额\n1.——100元\n2.——300元\n3.——500元\n4.——1000元\n5.——3000元\n6.——5000元");num = input.nextInt();continue;} else {System.out.println("交易取消,请取卡!");return;}} else {break;}}if (num == 0) {System.out.println("请输入取的钱数,最低100,最高1000,只能是整百!");amount = input.nextInt();if (sum > 20000) {sum -= amount;System.out.println("加上本次取钱的金额,总金额超过20000,最多可以取" + (20000 - sum) + "元" + ",请选择是否继续Y/N");jx = input.next();if (jx.equals("Y") || jx.equals("y")) {continue;} else {System.out.println("交易取消,请取卡!");return;}}while (true) {if (amount >= 100 && amount <= 1000 && amount % 100 == 0) {sum += amount;System.out.println("成功取出" + amount + "元");System.out.println("取钱总额数:" + sum);break;} else {System.out.println("金额错误,是否继续Y/N");jx = input.next();if (jx.equals("Y") || jx.equals("y")) {System.out.println("请重新输入金额:");amount = input.nextInt();} else {System.out.println("交易取消,请取卡!");return;}}}}System.out.println("取款完成,是否继续Y/N");jx = input.next();if (jx.equals("Y") || jx.equals("y")) {continue;} else {System.out.println("交易取消,请取卡!");return;}}}}

import java.util.Scanner;/** * ATM机 * @author Administrator */public class ATMFinal {public static void main(String[] args) {// TODO Auto-generated method stub// 验证密码Scanner sc = new Scanner(System.in);// 三次机会(for循环)String pwd = null;//用户输入的密码int num = 0;//用户选择的金额选项int money=0;//用户选择的提款金额int total=20000;//总金额for (int i = 0; i < 3; i++) {System.out.println("请输入密码:还有" + (3 - i) + "次机会");pwd = sc.next();if (pwd.equals("111111")) {// 密码正确while (true) {// 输入选项选择金额System.out.println("请选择金额");System.out.println("0.手动输入金额\t1.100元\t2.300元\t3.500元\t4.1000元\t5.3000元\t6.5000元");num = sc.nextInt();//获取正确的金额switch (num) {case 0:System.out.print("请手动输入金额(必须要100元的倍数,最低100元,最高不超过1000元)");money=sc.nextInt();if(!(money%100==0&&money>0&&money<1001)) {//输入错误的金额System.out.println("金额有误,是否继续(y/n)");money=0;}break;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;default:System.out.println("输入有误,是否继续(y/n)");money=0;break;}// 根据金额扣除余额if(money>0) {// 判断是否余额大于等于要扣除的金额if(total>money) {//可以正确取钱total-=money;System.out.println("提款成功,余额:"+total+",是否继续(y/n)");} else if(total==money) {//可以取钱,结束程序total=0;System.out.println("谢谢使用,请取卡");return;} else {//不可以取钱System.out.println("余额不足,余额剩余"+total+",是否继续(y/n)");}}// 再次选择是否继续String str=sc.next();if(str.equals("y")) {//继续循环} else {System.out.println("谢谢使用,请取卡");return;}}} else {// 密码错误if (i == 2) {System.out.println("三次密码输入错误,请取卡");} else {System.out.println("密码错误,请重新输入");}}}}}