嗨,这是第一次来这里。
我有一项任务,我需要为支付卡编写代码,而且我完全迷失了。该卡应该执行以下操作:
当您添加的金额不会达到最小或最大余额时,它应该打印出一行文字,说"值应该至少为5"或"最高余额为125"。它适用于最小线,但是当你尝试添加超过125时,它打印出线并仍然添加数量。
这是我的所有代码:
public class protonkaart
{
private double balans;
private boolean activate;
private int min;
private int max;
public protonkaart()
{
balans = 0;
activate = false;
min = 5;
max = 125;
}
public double getBalans()
{
return balans;
}
/**
* balansOpladen = Add money to balance
*/
public void balansOpladen (double bedrag)
{
if ((bedrag >= 5) && (balans <= 125))
{
balans += bedrag;
}
if ((bedrag <= 5))
{
System.out.println("U moet minstens 5 euro opladen.");
}
if ((bedrag >=125))
{
balans += 0;
System.out.println("U mag maximaal 125 euro opladen!");
}
}
}
欢迎任何帮助。
答案 0 :(得分:1)
问题是您必须检查总和是否小于125而不是当前值。
public void balansOpladen (double bedrag) {
if ((bedrag + balans >= 5) && (balans + balans <= 125)) {
balans += bedrag;
}
if ((bedrag + balans <= 5)) {
System.out.println("U moet minstens 5 euro opladen.");
}
if ((bedrag + balans >=125)) {
System.out.println("U mag maximaal 125 euro opladen!");
}
}
另外,我会对此方法的结构进行一些更改,如下所示:
public void balansOpladen (double bedrag) {
if (bedrag + balans <= 5) {
System.out.println("U moet minstens 5 euro opladen.");
} else if (bedrag + balans >=125) {
System.out.println("U mag maximaal 125 euro opladen!");
} else {
balans += bedrag;
}
}