gpt4 book ai didi

java - 被 Deitel 如何编程第 9 章中的哨兵控制重复逻辑所困扰。问 4.18

转载 作者:行者123 更新时间:2023-12-01 12:28:02 26 4
gpt4 key购买 nike

嗨,这是我对一个看似简单问题的解决方案。只需从用户那里获取一些数据来计算用户是否超出了他的限制,如果超过则显示一条消息。我使用了哨兵控制的重复。我可以通过输入 -1 第一次退出程序。但之后它不起作用,我无法退出该程序。这是我的代码。

import java.util.Scanner;

public class CreditLimitCalculator {

public void getNewBalance(){

int acc;
int oldBal;
int debit;
int credit;
int limit;

Scanner input = new Scanner(System.in);

System.out.println("Enter account number or -1 to exit");
acc = input.nextInt();

while (acc != -1){
System.out.println("Enter old balance");
oldBal = input.nextInt();

System.out.println("Enter total debits");
debit = input.nextInt();

System.out.println("Enter total credit");
credit = input.nextInt();

System.out.println("Enter Limit");
limit = input.nextInt();

int newBalance = oldBal + credit - debit;

if (newBalance < limit){
System.out.println("Credit Limit exceeded");

}
}
}
}

我将代码更改为:

import java.util.Scanner;

public class CreditLimitCalculator {

public void getNewBalance(){

int acc;
int oldBal;
int debit;
int credit;
int limit;

Scanner input = new Scanner(System.in);

System.out.println("Enter account number or -1 to exit");
acc = input.nextInt();

while (acc != -1){
System.out.println("Enter old balance");
oldBal = input.nextInt();

System.out.println("Enter total debits");
debit = input.nextInt();

System.out.println("Enter total credit");
credit = input.nextInt();

System.out.println("Enter Limit");
limit = input.nextInt();

int newBalance = oldBal + credit - debit;

if (newBalance < limit){
System.out.println("Credit Limit exceeded");

System.out.println("Enter account number or -1 to exit");
acc = input.nextInt();

}
}
}
}

如果余额小于限额并且显示消息超出信用限额,则现在可以使用,但如果 if 语句不正确,即帐户余额不超过限额,则它似乎会跳过最后两行代码并直接跳回“输入新余额。我不明白,因为我添加的两行新行似乎在which语句中

最佳答案

您的循环基于 acc 中的值,该值在循环中永远不会改变。

更新:我修复了代码的缩进;您描述的新问题现在应该有明显的解决方案。

关于java - 被 Deitel 如何编程第 9 章中的哨兵控制重复逻辑所困扰。问 4.18,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26182505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com