ATM取款~~
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
ATM取款~~的更多相关文章
- 简单的ATM取款过程
一个简单的ATM的取款过程是这样的:首先提示用户输入密码(pwd),最多只能输3次,超过三次则提示用户“密码已输入三次错误,请取卡.“结束交易.如果用户密码正确,在提示用户输入金额(money),AT ...
- for循环练习-----ATM取款
要求: 代码: package com.jianglai.atm; import java.util.Scanner; public class ATM { public static void ma ...
- 两种atm取款方式
1.//函数 密码 账号function User(username, password, account){ this.username = username; this.password = pa ...
- ATM取款小项目
项目要求: 1.用户需要从控制台输入账号密码,账号或者密码不正确报异常 2.每日取款的金额有限制(100,30000),否则报异常 3.每次取款都要有记录,并在下一次取款时显示出来 思路: 1.先在& ...
- 高仿中国银行ATM系统
温馨提示由于代码太多只是上传了ATM客户端部分,管理员和超级管理员还有数据库部分上传了工程包,可以直接点击https://i.cnblogs.com/Files.aspx去里面找.package At ...
- 带你揭开ATM的神秘面纱
相信大家都用过ATM取过money吧,但是有多少人真正是了解ATM的呢?相信除了ATM从业者外了解的人寥寥无几吧,鄙人作为一个从事ATM软件开发的伪专业人士就站在我的角度为大家揭开ATM的神秘面纱吧. ...
- C#实现ATM自动取款机
本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankD ...
- ATM取款机优化需求的用例设计
案例设计需求 有一个ATM取款系统,现对于取款功能进行了如何需求变更:碑只能取面额是100元(如取500,输出5张100元),现在功能修改为,可以取面额是10元.50元和100元的,其余功能不变,用户 ...
- Spring学习(三)
1,Spring的事务管理机制 Spring事务管理高层抽象主要包括3个接口,Spring的事务主要是由他们共同完成的: l PlatformTransactionManager:事务管理器-主要用于 ...
随机推荐
- .net core中加载lua脚本的类库: MoonSharp
前言 MoonSharp是一个支持C#调用lua脚本的类库,支持.net, .net core, mono, unity,因此在.net core中也能够使用,而且加载和调用lua也很方便简单: 官网 ...
- 蓝桥网试题 java 基础练习 特殊回文数
------------------------------------------------------------------------------------- 简单点,对话的方式简单点 有 ...
- 蓝桥网试题 java 基础练习 十进制转十六进制
---------------------------------------------------------------------------------------------------- ...
- Omi原理-Hello Omi
Hello Omi Omi框架的每个组件都继承自Omi.Component,本篇会去完成Omi的Component的基本锥形,让其能够渲染第一个组件. omi.js实现 var Omi = {}; O ...
- Jenkins添加用户
新建用户 Jenkins刚开始的界面是允许访客进行所有操作的,这时Jenkins是有安全隐患的,也不容易去管理.这时,我们需要管理Jenkins的权限,对它的权限进行设置.关于Jenkins权限设置的 ...
- STL中sort排序算法第三个参数_Compare的实现本质
关于C++ STL vector 中的sort排序算法有三种自定义实现,它们本质上都是返回bool类型,提供给sort函数作为第三个参数. 重载运算符 全局的比较函数 函数对象 我认为从实现方式看,重 ...
- Mac入门推荐(写给Mac小白)
本人第一次接触Mac是在2016年10月中旬,那时由于对苹果系统的不熟悉,导致自己一开始的时候用的很不习惯,甚至还想换回Windows系统.总所周知,苹果系统的软件比较少,在此我向大家推荐一些个人觉得 ...
- ASP.NET通用权限框架 权限管理系统源码jquery 精美UI源码
软件技术开发,合作请联系QQ:858-048-581 开发工具 VS2010 .sql2005.2008等(在Sql server数据执行脚本即可) VS2010 打开保证本地运行成功(数据库.源代 ...
- Cocos2dx热更新遇到的那些坑
1.Cocos2dx热更新因为文件名含有空格,ios下载失败bug修改 问题描述: 项目中偶尔遇到美术图片命名时不规范,导致图片名字含有空格.导致ios热更新时,遇到下载失败. 解决方案: 1.从新改 ...
- .Net程序员学用Oracle系列(19):我知道的导出和导入
1.传统的导出/导入工具 1.1.EXP 命令详解 1.2.IMP 命令详解 1.3.EXP/IMP 使用技巧 2.新的导出/导入工具 2.1.EXPDP/IMPDP 参数说明 2.2.EXPDP/I ...