当前位置: 首页 > 知识库问答 >
问题:

如何在不退出程序的情况下在do-while循环中添加if语句?

鞠安民
2023-03-14

我有两节课。这个程序几乎模拟了一个自动取款机。用户将要求存入、提取或查看用户银行帐户的余额。

首先,余额将被设置为零,然后用户可以存钱或取款。

如果用户选择存款,则帐户余额将添加到用户希望存入他/她帐户的金额。CheckingAccount类中的GetBalance方法返回用户帐户的余额,而ProcessDeployce将用户希望存入的金额添加到余额中,而ProcessCheck将用户选择的金额减少到余额中。

如果用户选择查看余额,那么它将打印用户余额。

public class CheckingAccount{
    double myBalance = 0;

    public double getBalance(){
        return myBalance;
    }

    public void processDeposit(double amount){
        myBalance += amount;
    }

    public void processCheck(double amount){
        myBalance -= amount;
    }
}
import java.util.Scanner;
public class TestCheckingAccount {

public static void main(String[] args) {

    CheckingAccount check = new CheckingAccount();

    Scanner in = new Scanner(System.in);

    String choice;
    double moneyAdded;
    double moneySubtracted;

    do
    {
        System.out.println("Deposit");
        System.out.println("Withdraw");
        System.out.println("Balance");
        System.out.println("Exit");
        System.out.println("**********************************************");
        System.out.println("Which operation would you like to use?");
        choice = in.nextLine();

        if(choice.equalsIgnoreCase("Deposit"))
        {
            System.out.println("How much money would you like to deposit?");
            moneyAdded = in.nextDouble();
            check.processDeposit(moneyAdded);
        }

        if(choice.equalsIgnoreCase("Withdraw"))
        {
            System.out.println("How much money would you like to withdraw?");
            moneySubtracted = in.nextDouble();

            check.processCheck(moneySubtracted);
        }
        else if(choice.equalsIgnoreCase("Balance"))
        {
            System.out.printf("$%.2f%n" , check.myBalance);
        }
        else if(choice.equalsIgnoreCase("Exit"))
        {
            System.exit(0);
        }

    }
    while(choice.equalsIgnoreCase("Deposit")||choice.equalsIgnoreCase("Withdraw")||choice.equalsIgnoreCase("Balance"));

    in.close();

}

}

我如何使程序,使它可以提取或存钱,但仍然循环,并回到菜单,它问用户是否他/她想存钱或取款,而不只是结束循环?

共有1个答案

楚昊明
2023-03-14

对于“exit”条件,可以使用无限循环和break。此外,还可以使用try-with-resourcesclose语句关闭扫描程序。就像,

try (Scanner in = new Scanner(System.in)) {      
  String choice;
  double moneyAdded;
  double moneySubtracted;

  while (true) {
    System.out.println("Deposit");
    System.out.println("Withdraw");
    System.out.println("Balance");
    System.out.println("Exit");
    System.out.println("**********************************************");
    System.out.println("Which operation would you like to use?");
    choice = in.nextLine();

    if (choice.equalsIgnoreCase("Deposit")) {
      System.out.println("How much money would you like to deposit?");
      moneyAdded = in.nextDouble();
      check.processDeposit(moneyAdded);
    } else if (choice.equalsIgnoreCase("Withdraw")) {
      System.out.println("How much money would you like to withdraw?");
      moneySubtracted = in.nextDouble();
      check.processCheck(moneySubtracted);
    } else if (choice.equalsIgnoreCase("Balance")) {
      System.out.printf("$%.2f%n", check.myBalance);
    } else if (choice.equalsIgnoreCase("Exit")) {
      break;
    }
  }
}
 类似资料:
  • 问题内容: 在Java中退出/终止while循环的最佳方法是什么? 例如,我的代码当前如下: 问题答案: 用途: 但是,如果您的代码看起来 完全 像您指定的那样,则可以使用普通循环并将条件更改为:

  • 由于某种原因,在我输入“停止”后,代码不会退出。为什么?逐步调试表明,在我输入“stop”后,它的值完全由“s”、“t”、“o”、“p”组成,没有任何换行符,等等。然而,代码仍然无法退出。谁能告诉我为什么吗?

  • 这周我刚刚开始学习C#并且正在尝试运行一个简单的代码,当用户输入文本时,它会提示用户输入一个数字,或者当用户输入一个负数时,它会提示用户输入一个正数(因此,对于文本是一个布尔运算,对于负数是一个if语句)。如果他们输入了一个有效的(正)数字,程序将继续进行其余的步骤。 然而,在此代码中,如果用户输入一个负数,然后输入一个文本,然后输入另一个负数,依此类推,似乎会中断循环并继续下一个操作。 代码是一

  • 问题内容: 在下面的代码中,我希望循环在+ + =时立即退出。但是,使用语句进行测试表明它一直持续到循环完成为止。我尝试过,然后在语句集中进行设置,但这会导致无限循环。我认为使用然后设置可能有效,但也可以一直运行到循环结束为止。什么是最优雅,最快的退出方式?谢谢。 问题答案: 该循环将只匹配条件时,当控制返回到它,即循环完全执行。因此,这就是即使满足条件也不会立即退出程序的原因。 但是,如果条件没

  • 我正在为学校做一个简单的Java计算器,效果很好。但是,我需要添加一个while循环,询问用户是否要继续是/否。不过,我不知道应该将while语句放在哪里。我试着把if语句放在上面,我试着把它放在下面,然后把它添加到每个if和else if语句中,但仍然无法让它工作。在if和else-if语句中,应该在哪里放置while循环,以获得运行while循环的所有选项?

  • 我有以下代码来下载通过TCP传输的文件: 一旦所有的字节都被处理了(它们总是被处理的,它像正常的一样工作,只是不退出循环),文件就被创建了,没有一个问题,但是,循环没有退出。

  • 出现的问题是,当用户确实输入了一个正数时,它仍然忽略输入,并要求用户再次输入一个正整数。我想我只是没有正确退出循环,但我不确定是如何退出的。

  • 问题内容: 我“d成的运行Django的服务器,我不能简单地和出来。 是否有其他摆脱困境的方法? 目前,我手动关闭本地PC上的选项卡,然后再重新打开,但这变得很烦人。 问题答案: 或 。请参阅屏幕手册#分离。