J'essaie de construire un est-il possible d'avoir deux instructions Y a-t-il un meilleur moyen de écrire cela? (Peut-être utiliser un commutateur Ce code fonctionne avec des retraits d'un compte courant. Je veux qu'il soit conforme aux règles suivantes: p> si sinon code> instruction ici et que vous obtenez un peu confus avec les valeurs code> renvoyer code> et le résultat booléen code> résultat que nous obtenons de la condition. renvoyer vrai code> dans ce cas ou une sortie après le premier blocage? p> code>?) p>
3 Réponses :
Il y a peut-être plusieurs façons de l'écrire de manière plus concise, mais je le ferais comme ceci:
public boolean withdraw(double amount) {
if (amount <= 0.0) {
System.out.println("Withdrawal amount should be positive!");
return false;
}
double fee = (amount > balance) ? overdraftFee : 0.0;
setBalance(balance - amount - fee);
return true;
}
Donc, le deuxième bloc ici dit: si le montant est supérieur à celui de la balance, maintenez la fraise de découverte de l'opération et effectuez l'opération ci-dessous. Mais si ce n'est pas plus grand que l'équilibre, changez-vous sur 0, puis effectuez une opération?
@Kevinocampo Il ne change pas OverDraftFee code>, mais attribue une valeur différente à une autre variable frais code>
Vous pouvez utiliser un étui de commutation
La méthode arrêtera la Plus important encore, Une autre façon d'écrire serait: p> la raison d'utiliser avec l'erreur p> retour code>. Un effet secondaire de ceci est que vous n'avez pas besoin d'utiliser des blocs sinon code> s'il aura renvoyé dans le bloc si code> bloque (comme tout ce qui est après ce bloc ne sera exécuté que si la condition était false code>). double code> n'est pas un bon choix à utiliser pour les quantités de devise en Java et provoquera des erreurs d'arrondi dans votre code (i 'll expliquer plus après le bloc de code). La meilleure option est bigdecimal code>. P> Bigdecimal code> au lieu de double code> pour la devise est qu'en raison de la manière dont un double est représenté en interne, tous les nombres décimaux ne peuvent pas être stockés avec précision. Cela conduit à des erreurs d'arrondies, ce qui est important pour la monnaie. Par exemple, le test suivant échoue: P>
plus-un pour bigdecimal