// 模拟银行系统取款
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("感谢您的使用!");