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. JAVA_file(1)

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径.http://www.s ...

  2. SQL SERVER运维日记--收缩数据库

    一个小故事 某天,小王正在和HR妹妹闲聊,正HAPPY时,,突然收到系统告警消息,数据库磁盘被剩余空间500M,OMG,不行,磁盘快满了,要是业务要停了,,那就小王只能删库到跑路了,,, 先检查下,有 ...

  3. bcnf范式

    3.5范式--bcnf范式到底是什么呢? 对于bcnf范式,通过查阅资料,我的理解是--主键依赖的去除.比如说:一个仓库管理的表格,有以下属性(管理员编号,仓库号,货物编号,货物数量)其中每个管理员管 ...

  4. 纯js实现html转pdf

    项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式.简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf.咋不上天呢--查了一下 ...

  5. iOS UISearchController 的使用方法

    iOS UISearchController 的使用方法 UISearchController 让用户在 UISearchBar 上输入搜索关键词,展示搜索结果或者进行其他操作.UISearchCon ...

  6. (一) 从Angular1到Angular2的杂谈

    使用了angular1一年下来,完成了若干项目,承蒙此框架的强大带来了不算差的项目编写体验,但1.*版本的angular,确实是有厉害的地方也有其尴尬的地方,包括较多数据的渲染的性能问题,还有就是可能 ...

  7. git + tortoisegit安装及配置

    1. 下载Git-2.6.3-64-bit.exe 2. 安装Git-2.6.3-64-bit.exe,安装时可全部默认配置(安装路径可选) 3. 下载TortoiseGit-1.8.16.0-64b ...

  8. 简洁美观的Java博客系统Tale开源了,让每一个有故事的人更好的表达想法

    Tale Tale的英文含义为故事,我相信每个坚持写Blog的人都是有故事的:中文你叫它 塌了 也无所谓 . Tale 使用了轻量级mvc框架 Blade 开发,默认主题使用了漂亮的 pinghsu, ...

  9. 《C++ Primer》学习笔记 :命名空间的using声明

    最近在学C++,在<C++ Primer>第五版的3.1节中说到使用using声明来使用命名空间中的成员,<C++ Primer>中这样写道: 有了using声明就无须专门的前 ...

  10. caoz大神力作、互联网从业者必读之书——《你凭什么做好互联网》深入总结

    作者简介:曹政--俞军的关门弟子,CNZZ统计工具的缔造者,前百度商业产品部boss,4399CTO,微信公众号"caoz的梦呓"(yi),文后附上二维码,经常发布各种互联网干货, ...