/ / Le programme ne fonctionnera pas correctement [fermé] - java, if-statement, crash

Le programme ne fonctionnera pas correctement [fermé] - java, if-statement, crash

J'ai donc écrit ce programme, mais pour une raison quelconque, monsinon la déclaration ne fonctionnera pas. Si je saisis "e", par exemple, mon programme va simplement planter ... alors qu'il est supposé renvoyer "Entrée invalide" Quelqu'un peut-il m'aider s'il vous plaît?

=============================================== ========================

import java.util.Scanner;

public class AbsValue2 {
public static void main(String[] args) {

Scanner input = new Scanner(System.in);
System.out.println("Enter a number:");
String num = input.nextLine();
Double num2 = new Double(Double.parseDouble(num));
Double abs_val = new Double(Math.sqrt(num2 * num2));

if (num.matches("[+-]?[\d]+[.]*"))
System.out.println("The absolute value of " + num + " is |" + abs_val + "|");
else if (num.matches("[+-]?[\d]*.[\d]+"))
System.out.println("The absolute value of " + num + " is |" + abs_val + "|");
else
System.out.println("Invalid input");

}
}

Réponses:

2 pour la réponse № 1

le problème est ici:

Double num2 = new Double(Double.parseDouble(num));

si num est "e", alors vous aurez un NumberFormatException.

Vous pouvez utiliser Scanner.hasNextDouble{}, pour vérifier ou essayer / attraper cette exception.


0 pour la réponse № 2

Votre code jette un NumberFormatException avant la déclaration si est atteinte, à cause de cette ligne:

Double num2 = new Double(Double.parseDouble(num));

Vous devez vérifier la validité avant l'analyse