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取款~~的更多相关文章

  1. 简单的ATM取款过程

    一个简单的ATM的取款过程是这样的:首先提示用户输入密码(pwd),最多只能输3次,超过三次则提示用户“密码已输入三次错误,请取卡.“结束交易.如果用户密码正确,在提示用户输入金额(money),AT ...

  2. for循环练习-----ATM取款

    要求: 代码: package com.jianglai.atm; import java.util.Scanner; public class ATM { public static void ma ...

  3. 两种atm取款方式

    1.//函数 密码 账号function User(username, password, account){ this.username = username; this.password = pa ...

  4. ATM取款小项目

    项目要求: 1.用户需要从控制台输入账号密码,账号或者密码不正确报异常 2.每日取款的金额有限制(100,30000),否则报异常 3.每次取款都要有记录,并在下一次取款时显示出来 思路: 1.先在& ...

  5. 高仿中国银行ATM系统

    温馨提示由于代码太多只是上传了ATM客户端部分,管理员和超级管理员还有数据库部分上传了工程包,可以直接点击https://i.cnblogs.com/Files.aspx去里面找.package At ...

  6. 带你揭开ATM的神秘面纱

    相信大家都用过ATM取过money吧,但是有多少人真正是了解ATM的呢?相信除了ATM从业者外了解的人寥寥无几吧,鄙人作为一个从事ATM软件开发的伪专业人士就站在我的角度为大家揭开ATM的神秘面纱吧. ...

  7. C#实现ATM自动取款机

    本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankD ...

  8. ATM取款机优化需求的用例设计

    案例设计需求 有一个ATM取款系统,现对于取款功能进行了如何需求变更:碑只能取面额是100元(如取500,输出5张100元),现在功能修改为,可以取面额是10元.50元和100元的,其余功能不变,用户 ...

  9. Spring学习(三)

    1,Spring的事务管理机制 Spring事务管理高层抽象主要包括3个接口,Spring的事务主要是由他们共同完成的: l PlatformTransactionManager:事务管理器-主要用于 ...

随机推荐

  1. MyBatis中多对多关系的映射和查询

    先说一下需求: 在页面上显示数据库中的所有图书,显示图书的同时,显示出该图书所属的类别(这里一本书可能同时属于多个类别) 创建表: 笔者这里使用 中间表 连接 图书表 和 图书类别表,图书表中 没有使 ...

  2. Myeclipese改变背景色

    https://www.baidu.com/s?wd=Myeclipese%E6%94%B9%E5%8F%98%E8%83%8C%E6%99%AF%E8%89%B2&ie=utf-8& ...

  3. UUID错误

    在Archive项目时,出现了“Your build settings specify a provisioning profile with the UUID “”, however, no suc ...

  4. UI进阶 即时通讯之XMPP登录、注册

    1.XMPP环境搭建 http://www.cnblogs.com/fearlessyyp/p/5506644.html 第一次打开可能会有点儿慢,图片很多,步骤很详细,祝搭建成功. 2.工程中添加X ...

  5. 修改UITextField的占位文字颜色的三种层次

    层次一:利用富文本 // 描述占位文字属性 NSMutableDictionary *dict = [NSMutableDictionary dictionary] ; dict[NSForegrou ...

  6. 使用 position:sticky 实现粘性布局

    如果问,CSS 中 position 属性的取值有几个?大部分人的回答是,大概是下面这几个吧? { position: static; position: relative; position: ab ...

  7. php单例模式与工厂模式

    单例模式:单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的. 所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记 ...

  8. python - bilibili(二)出错的解决办法

    在获取房间号之前我们先解决上篇文章遗留的bug,即输入的房间号不是数字和对应的房间号不存在而产生的问题. 输入的房间号不是数字: 在python中,你所输入的必定是字符串,虽然你输入的是数字,但是类型 ...

  9. 解决HTML导出Excel表数字变成科学计数法

    - js 中导出excel 较长数字串会变成科学计数法 在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串转 ...

  10. git 命令用法 流程操作

    Git 是一款免费的.开源的.分布式的版本控制系统.旨在快速高效地处理无论规模大小的任何软件工程. 每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务 ...