当前位置: 首页 > news >正文

二重循环之在ATM上取款

问题:假设一个简单的在ATM的取款如下:首先提示用户输入密码(password),最多只能输入三次,超过三次则提示用户“密码错误,请取卡”,结束交易。如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。如果用户输入的金额符合上述的要求,则打印输出用户取的钱数,最后提示用户“交易完成,请取卡“,否则提示用户重新输入金额,假设用户密码是”111111“。

代码如下:(代码有瑕疵,大佬觉得应该怎么该好呢)

package com;

import java.util.Scanner

public class Demo13 {

        public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        //外层循环控制输入密码的次数

        for(int i=0;i<3;i++) {

                String password = null;

                int amount = 0;

                System.out.println("请输入密码:");

                password = input.next();

                        if(!"111111".equals(password)) {

                        System.out.println("密码错误");

                        continue;

                        }

                        if("111111".equals(password)) {

                        System.out.println("密码正确,请输入取款金额:");

        }

                        for(int j=0;j<1000;j++) {

                        amount = input.nextInt();

                        if(amount<=1000 && amount>=100) {

                        System.out.println("取款金额为:"+amount);

                        System.out.println("交易完成,请取卡!");

                        break;

                        }else {

                        System.out.println("请重新输入金额:");

                        continue;

                        }

                }

        }

        System.out.println("密码错误,请取卡");

  }

}

修改后的代码:

package com;

import java.util.Scanner;

public class Demo13 {

        public static void main(String[] args) {

                Scanner input = new Scanner(System.in);

                String correctPassword = "111111";

                boolean passwordCorrect = false;

                //外层循环控制输入密码的次数

                for(int i=0;i<3 && !passwordCorrect;i++) {   //这里修改后,就不会出现重复输入密码的问题

                        String password = null;

                        System.out.println("请输入密码:");

                        password = input.next();

                                if(!correctPassword.equals(password)) {

                                        System.out.println("密码错误");

                                        }else{

                                                passwordCorrect = true;

                                                int amount=0;

                                                //内层循环控制输入取款金额

                                        while(true) {

                                                System.out.println("密码正确,请输入取款金额:");

                                                amount = input.nextInt();

                                                        if(amount<=1000 && amount>=100) {

                                                        System.out.println("取款金额为:"+amount);

                                                        System.out.println("交易完成,请取卡!");

                                                        break;

                                                        }else {

                                                        System.out.println("请重新输入金额(100~1000之间):");

                                                        }

                                                }

                                        }

                                }

                               if(!passwordCorrect){

                                System.out.print("密码错误,请取卡!");

                                }

                                input.close();

                                }

                }

http://www.dtcms.com/a/297843.html

相关文章:

  • 【vue3+vue-pdf-embed】实现PDF+图片预览
  • InfluxDB Line Protocol 协议深度剖析(二)
  • Ubuntu 22.04 使用 Issac Gym 进行人形强化学习训练
  • ip link show 查看/配置网络接口
  • keepalived篇
  • Spring Cloud微服务项目完整搭建指南
  • ODFM(正交频分复用)系统中加入汉明码(Hamming Code)的主要目的是增强抗误码能力,通过**前向纠错(FEC)**机制提高传输可靠性
  • 详解FreeRTOS开发过程(八)-- 时间标志
  • 相机ROI 参数
  • 【飞控】在 Windows 中为PX4自动驾驶仪安装 UAV 工具箱支持包
  • Python 程序设计讲义(19):选择结构程序设计
  • 架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案?
  • [2025CVPR-图象分类方向]CATANet:用于轻量级图像超分辨率的高效内容感知标记聚合
  • Git常用命令赏析
  • Spring Boot 优雅实现多租户架构!
  • 谁将统治AI游戏时代?腾讯、网易、米哈游技术暗战
  • 基于Android的2048休闲益智游戏App
  • 上位机程序开发基础介绍
  • 大型微服务项目:听书——11 Redisson分布式布隆过滤器+Redisson分布式锁改造专辑详情接口
  • HTML5武汉旅游网站源码
  • ZedGraph 可选定轴 通过鼠标移动或通过滚轮设置轴的范围
  • linux-开机启动流程
  • 解密国密 SSL 证书:SM2、SM3、SM4 算法的协同安全效应
  • 物联网技术:起源、发展、重点技术、应用场景与未来演进
  • [RPA] Excel中的字典处理
  • Y1第4课题解(A~E)
  • Kubernetes深度解析:企业级容器编排平台的核心实践
  • 在OpenMP中,#pragma omp的使用
  • JAVA_FourTEEN_常见算法
  • Python爬虫实战:研究flanker相关技术