首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回路不能正常工作的退款

回路不能正常工作的退款
EN

Stack Overflow用户
提问于 2011-12-26 20:23:00
回答 4查看 197关注 0票数 0

我被这个Java作业问题困住了:

编写了一种新的方法“退款”,该方法通过反复打印余额,每次减少10个,直到馀额少于10个,模拟任何剩余学分的退款。然后开始削减余额1信贷重复,同时打印到屏幕,直到余额为零。例如,如果当前余额为33,并且调用了退款,则屏幕上的输出如下所示:

余额: 33

余额: 23

余额: 13

余额:3

余额:2

余额:1

余额:0

除了以'0‘结尾的数字,如10、30、100等,它对任何数字都很好。

这是我的退款方法:

代码语言:javascript
复制
public void Refund(){
    System.out.println("You have selected the refund option:");

    for(int counter=(int)balance;counter>=10;counter-=10){
        System.out.println("Balance: £"+balance);
        balance-=10;
    }

    for(int counter=(int)balance;counter>0;counter-=1){
        System.out.println("Balance: £"+balance);
        balance-=1;
    }

    System.out.println("Balance: £"+balance);
}

基本上,我唯一能让它与10,30等数字一起工作的方法就是

代码语言:javascript
复制
for(int counter=(int)balance-10;counter>=10;counter-=10){

以下为报表(退款办法):

代码语言:javascript
复制
for(int counter=(int)balance;counter>=10;counter-=10){
System.out.println("Balance: £"+balance);
balance-=10;
}

然而,现在我已经做了,10,30,100工作,但任何其他数字,即33,54,62等,不起作用!有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-26 21:00:18

只是为了澄清这个问题。你的退款方法很好。

它适合您的约束,“每次减少10个,直到小于10个学分为止”。

如果将约束更改为小于或等于10,则不适用。

这是我的测试,这是可行的:

代码语言:javascript
复制
public class Main {

    public static void main(String[] args) {
        Main m = new Main();
        m.refund(33);
    }

    public void refund(float balance) {
        System.out.println("You have selected the refund option:");

        for (int counter = (int) balance; counter >= 10; counter -= 10) {
            System.out.println("Balance: £" + balance);
            balance -= 10;
        }

        for (int counter = (int) balance; counter > 0; counter -= 1) {
            System.out.println("Balance: £" + balance);
            balance -= 1;
        }

        System.out.println("Balance: £" + balance);
    }
}

我还没有修改你方法的主体.

以下是30个输入的输出:

代码语言:javascript
复制
You have selected the refund option:
Balance: £30.0
Balance: £20.0
Balance: £10.0
Balance: £0.0

在33上:

代码语言:javascript
复制
You have selected the refund option:
Balance: £33.0
Balance: £23.0
Balance: £13.0
Balance: £3.0
Balance: £2.0
Balance: £1.0
Balance: £0.0
票数 1
EN

Stack Overflow用户

发布于 2011-12-26 20:32:17

试试这样的东西。(未测试)

代码语言:javascript
复制
while(balance != 0) {
    System.out.println("The balance: " + balance);
    if(balance >= 10)
        balance -= 10;
    else
        balance--;
}
票数 3
EN

Stack Overflow用户

发布于 2011-12-26 20:28:33

这应该是可行的:

代码语言:javascript
复制
int balance = 33;

        for (int counter = (int) balance; counter >= 10; counter -= 10) {
            System.out.println("Balance: £" + balance);
            balance -= 10;

            for(int c = (int) balance; c <= 10 && c>=0; c -= 1){
                System.out.println("Balance: £" + balance);
                balance -= 1;
            }

        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8638882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档