-1
私はDeital Program 10th Editionからエクササイズ(3.11)を行っています。私のプログラムにエラーはありませんが、引き出し金額がそれ以上の場合は残高が表示されます。 「残高不足」というメッセージのみが表示されるので、私はちょうど初心者です。WithDraw moneyアカウントから(Java)
私のメインプログラム
package practice;
import java.util.Scanner;
public class apple {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
tuna account1 = new tuna ("James" , 150000);
tuna account2 = new tuna ("David" , 5000);
System.out.printf("%s Balance: %.2f" , account1.getName(),account1.getBalance());
System.out.printf("%n%s Balance: %.2f" , account2.getName(), account2.getBalance());
System.out.print("\nEnter the Ammount that will add in James Account: ");
double depositAmmount = input.nextDouble();
System.out.printf("Adding %.2f to James Account", depositAmmount);
account1.deposit(depositAmmount);
System.out.printf("%n%s Balance: %.2f" , account1.getName(),account1.getBalance());
System.out.print("\nEnter the Ammount that will add in David Account: ");
depositAmmount = input.nextDouble();
System.out.printf("Adding %.2f to David Account", depositAmmount);
account2.deposit(depositAmmount);
System.out.printf("%n%s Balance: %.2f" , account2.getName(),account2.getBalance());
System.out.print("\nEnter the Ammount that will withdrawal from james Account: ");
double wD = input.nextDouble();
System.out.printf("WithDrawal %.2f from James Account",wD);
account1.withDrawal(wD);
System.out.printf("%n%s Balance: %.2f" , account1.getName(),account1.getBalance());
}
}
であり、それはそれで一つの可能な解決策が機能は、それが成功したか否かを示すboolean
を返すことです
package practice;
public class tuna {
private String name;
private double balance;
public tuna (String name , double balance){
this.name = name;
if (balance > 0)
this.balance = balance;
}
public void deposit(double depositAmmount){
if (depositAmmount > 0)
balance = balance + depositAmmount;
}
public void withDrawal (double wD){
if (wD > balance)
System.out.println("\nInsufficient Balance");
else
balance = balance - wD;
}
public double getBalance(){
return balance;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
正確な問題は何ですか? 'withDrawal'関数が' balance'変数を実際に修正したかどうか知りたいと思いますか?その場合、例えば、ブール値を返すようにすることができます(それが撤回された場合はtrueを返し、そうでない場合はfalseを返します)。 – UnholySheep
私はちょうど払い戻し金額がそれよりも大きい場合は、そのアカウントの金額ではなく、「不十分な残高」というメッセージが表示されます。 –
はい、それが私の提案で可能です。それ以外の場合は、printステートメントを 'withDrawal'関数の' if'ブランチに移動することもできます(これはIMOの醜い解決策です。 'boolean'を返すことになります) – UnholySheep