package com.jredu.ch03; import java.util.Scanner; public class Atmmmmmmmmmm { static int totalMoney=20000;//用户的银行卡余额 public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
//输入密码,最多输入三次
for(int i=0;i<3;i++) {
System.out.println("请输入密码,您还可以再输入"+(3-i)+"次");
switch (input.nextInt()) {
case 111111:
/**
* 选择金额
*/
System.out.println("输入密码正确");
while(true){
System.out.println("请选择金额:0.手动输入金额\t1.100元\t2.300元3.500元\t4.1000元\t5.3000元\t6.5000元");
String num=input.next();
switch(num) {
case "0":
System.out.println("请输入金额,不得低于100元,不得高于1000,必须是100元的倍数");
int money=input.nextInt();
if(money%100!=0||money<100||money>1000) {
System.out.println("输入有误,请重新输入");
} else {
if(totalMoney-money>0) {
totalMoney-=money;
System.out.println("您取款"+money+"元,剩余"+totalMoney+"元");
} else if(totalMoney-money==0) {
totalMoney-=money;
System.out.println("您取款"+money+"元,剩余"+totalMoney+"元");
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("余额不足,请重新选择金额");
}
}
System.out.println("是否继续(y/n)");
break;
case "1":
//100元
totalMoney-=100;
System.out.println("您取款100元,剩余"+totalMoney+"元");
if(totalMoney>0) {
System.out.println("是否继续(y/n)");
} else {
System.out.println("谢谢使用,再见");
return;
}
break;
case "2":
//300元
if(totalMoney-300>0) {
totalMoney-=300;
System.out.println("您取款300元,剩余"+totalMoney+"元");
} else if(totalMoney-300==0) {
totalMoney-=300;
System.out.println("您取款300元,剩余"+totalMoney+"元");
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("余额不足,请重新选择金额");
}
System.out.println("是否继续(y/n)");
break;
case "3":
//500元
if(totalMoney-500>0) {
totalMoney-=500;
System.out.println("您取款500元,剩余"+totalMoney+"元");
} else if(totalMoney-500==0) {
totalMoney-=500;
System.out.println("您取款500元,剩余"+totalMoney+"元");
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("余额不足,请重新选择金额");
}
System.out.println("是否继续(y/n)");
break;
case "4":
//1000元
if(totalMoney-1000>0) {
totalMoney-=1000;
System.out.println("您取款1000元,剩余"+totalMoney+"元");
} else if(totalMoney-1000==0) {
totalMoney-=1000;
System.out.println("您取款1000元,剩余"+totalMoney+"元");
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("余额不足,请重新选择金额");
}
System.out.println("是否继续(y/n)");
break;
case "5":
//3000元
if(totalMoney-3000>0) {
totalMoney-=3000;
System.out.println("您取款3000元,剩余"+totalMoney+"元");
} else if(totalMoney-3000==0) {
totalMoney-=3000;
System.out.println("您取款3000元,剩余"+totalMoney+"元");
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("余额不足,请重新选择金额");
}
System.out.println("是否继续(y/n)");
break;
case "6":
//5000元
if(totalMoney-5000>0) {
totalMoney-=5000;
System.out.println("您取款5000元,剩余"+totalMoney+"元");
} else if(totalMoney-5000==0) {
totalMoney-=5000;
System.out.println("您取款5000元,剩余"+totalMoney+"元");
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("余额不足,请重新选择金额");
}
System.out.println("是否继续(y/n)");
break;
default:
System.out.println("数字输入错误,是否继续(y/n)");
//如果y继续,如果n退出
break;
}
while(true) {
char repeat=input.next().charAt(0);
if(repeat=='y') {
break;
} else if(repeat=='n') {
System.out.println("谢谢使用,再见");
return;
} else {
System.out.println("输入错误,请重新输入");
}
} }
default:
//密码错误
if(i==2) {
//如果超过三次提示输入密码错误
System.out.println("密码错误,请取卡");
}
break;
}
}
input.close();
} }
流程控制
用来控制程序中各种语句的执行顺序
Java中三种流程控制:
顺序结构、选择结构、循环结构
循环结构:while、do-while、for、foreach语句
跳转结构:break、continue、return跳出整个方法
多重if-slse选择结构
if-else与switch比较
绝大部分情况下switch会快一点,除非if-else第一个条件就为true
等值分支使用switch
while循环
符合条件循环继续执行,否则循环退出,先判断后执行
do-while 先执行一遍循环操作,在判断
do{
循环操作
}while(循环条件);
for(表达式①;②;④更新循环变量){
③循环操作
}
嵌套循环:先内循环再外循环
foreach循环
从开始到结束,效率最高,但不能像for循环那样定义范围
break:改变程序控制流
可跳出循环而执行循环后面的语句,还可用在switch
continue
只能用在循环里
跳出当前循环剩余的语句而执行下一次循环
return
作用:退出当前方法,返回上层调用方法处
每个方法都要有return语句,表示方法结束并返回结果
循环次数确定的情况下,通常选用for循环
循环次数不定,用while和do-while