1 package com.jredu.ch03; 2 3 import java.util.Scanner; 4 5 public class Atmmmmmmmmmm { 6 7 static int totalMoney=20000;//用户的银行卡余额 8 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11 Scanner input=new Scanner(System.in); 12 //输入密码,最多输入三次 13 for(int i=0;i<3;i++) { 14 System.out.println("请输入密码,您还可以再输入"+(3-i)+"次"); 15 switch (input.nextInt()) { 16 case 111111: 17 /** 18 * 选择金额 19 */ 20 System.out.println("输入密码正确"); 21 while(true){ 22 System.out.println("请选择金额:0.手动输入金额\t1.100元\t2.300元3.500元\t4.1000元\t5.3000元\t6.5000元"); 23 String num=input.next(); 24 switch(num) { 25 case "0": 26 System.out.println("请输入金额,不得低于100元,不得高于1000,必须是100元的倍数"); 27 int money=input.nextInt(); 28 if(money%100!=0||money<100||money>1000) { 29 System.out.println("输入有误,请重新输入"); 30 } else { 31 if(totalMoney-money>0) { 32 totalMoney-=money; 33 System.out.println("您取款"+money+"元,剩余"+totalMoney+"元"); 34 } else if(totalMoney-money==0) { 35 totalMoney-=money; 36 System.out.println("您取款"+money+"元,剩余"+totalMoney+"元"); 37 System.out.println("谢谢使用,再见"); 38 return; 39 } else { 40 System.out.println("余额不足,请重新选择金额"); 41 } 42 } 43 System.out.println("是否继续(y/n)"); 44 break; 45 case "1": 46 //100元 47 totalMoney-=100; 48 System.out.println("您取款100元,剩余"+totalMoney+"元"); 49 if(totalMoney>0) { 50 System.out.println("是否继续(y/n)"); 51 } else { 52 System.out.println("谢谢使用,再见"); 53 return; 54 } 55 break; 56 case "2": 57 //300元 58 if(totalMoney-300>0) { 59 totalMoney-=300; 60 System.out.println("您取款300元,剩余"+totalMoney+"元"); 61 } else if(totalMoney-300==0) { 62 totalMoney-=300; 63 System.out.println("您取款300元,剩余"+totalMoney+"元"); 64 System.out.println("谢谢使用,再见"); 65 return; 66 } else { 67 System.out.println("余额不足,请重新选择金额"); 68 } 69 System.out.println("是否继续(y/n)"); 70 break; 71 case "3": 72 //500元 73 if(totalMoney-500>0) { 74 totalMoney-=500; 75 System.out.println("您取款500元,剩余"+totalMoney+"元"); 76 } else if(totalMoney-500==0) { 77 totalMoney-=500; 78 System.out.println("您取款500元,剩余"+totalMoney+"元"); 79 System.out.println("谢谢使用,再见"); 80 return; 81 } else { 82 System.out.println("余额不足,请重新选择金额"); 83 } 84 System.out.println("是否继续(y/n)"); 85 break; 86 case "4": 87 //1000元 88 if(totalMoney-1000>0) { 89 totalMoney-=1000; 90 System.out.println("您取款1000元,剩余"+totalMoney+"元"); 91 } else if(totalMoney-1000==0) { 92 totalMoney-=1000; 93 System.out.println("您取款1000元,剩余"+totalMoney+"元"); 94 System.out.println("谢谢使用,再见"); 95 return; 96 } else { 97 System.out.println("余额不足,请重新选择金额"); 98 } 99 System.out.println("是否继续(y/n)"); 100 break; 101 case "5": 102 //3000元 103 if(totalMoney-3000>0) { 104 totalMoney-=3000; 105 System.out.println("您取款3000元,剩余"+totalMoney+"元"); 106 } else if(totalMoney-3000==0) { 107 totalMoney-=3000; 108 System.out.println("您取款3000元,剩余"+totalMoney+"元"); 109 System.out.println("谢谢使用,再见"); 110 return; 111 } else { 112 System.out.println("余额不足,请重新选择金额"); 113 } 114 System.out.println("是否继续(y/n)"); 115 break; 116 case "6": 117 //5000元 118 if(totalMoney-5000>0) { 119 totalMoney-=5000; 120 System.out.println("您取款5000元,剩余"+totalMoney+"元"); 121 } else if(totalMoney-5000==0) { 122 totalMoney-=5000; 123 System.out.println("您取款5000元,剩余"+totalMoney+"元"); 124 System.out.println("谢谢使用,再见"); 125 return; 126 } else { 127 System.out.println("余额不足,请重新选择金额"); 128 } 129 System.out.println("是否继续(y/n)"); 130 break; 131 default: 132 System.out.println("数字输入错误,是否继续(y/n)"); 133 //如果y继续,如果n退出 134 break; 135 } 136 while(true) { 137 char repeat=input.next().charAt(0); 138 if(repeat=='y') { 139 break; 140 } else if(repeat=='n') { 141 System.out.println("谢谢使用,再见"); 142 return; 143 } else { 144 System.out.println("输入错误,请重新输入"); 145 } 146 } 147 148 } 149 default: 150 //密码错误 151 if(i==2) { 152 //如果超过三次提示输入密码错误 153 System.out.println("密码错误,请取卡"); 154 } 155 break; 156 } 157 } 158 input.close(); 159 } 160 161 }
流程控制
用来控制程序中各种语句的执行顺序
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