我被这个Java作业问题困住了:
编写了一种新的方法“退款”,该方法通过反复打印余额,每次减少10个,直到馀额少于10个,模拟任何剩余学分的退款。然后开始削减余额1信贷重复,同时打印到屏幕,直到余额为零。例如,如果当前余额为33,并且调用了退款,则屏幕上的输出如下所示:
余额: 33
余额: 23
余额: 13
余额:3
余额:2
余额:1
余额:0
除了以'0‘结尾的数字,如10、30、100等,它对任何数字都很好。
这是我的退款方法:
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等数字一起工作的方法就是
for(int counter=(int)balance-10;counter>=10;counter-=10){以下为报表(退款办法):
for(int counter=(int)balance;counter>=10;counter-=10){
System.out.println("Balance: £"+balance);
balance-=10;
}然而,现在我已经做了,10,30,100工作,但任何其他数字,即33,54,62等,不起作用!有什么建议吗?
发布于 2011-12-26 21:00:18
只是为了澄清这个问题。你的退款方法很好。
它适合您的约束,“每次减少10个,直到小于10个学分为止”。
如果将约束更改为小于或等于10,则不适用。
这是我的测试,这是可行的:
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个输入的输出:
You have selected the refund option:
Balance: £30.0
Balance: £20.0
Balance: £10.0
Balance: £0.0在33上:
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发布于 2011-12-26 20:32:17
试试这样的东西。(未测试)
while(balance != 0) {
System.out.println("The balance: " + balance);
if(balance >= 10)
balance -= 10;
else
balance--;
}发布于 2011-12-26 20:28:33
这应该是可行的:
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;
}
}https://stackoverflow.com/questions/8638882
复制相似问题