Итак, я написал эту программу, но по какой-то причине инструкция else не будет работать. Если я ввожу «e», например, моя программа просто сработает ... когда ее на самом деле предполагается вернуть «Invalid Input» Может ли кто-нибудь помочь мне?Программа не будет работать должным образом
================================================================================================================================== ===========================
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");
}
}
Вы пытаетесь разобрать его, прежде чем вы проверите, действительно ли он. – khelwood
Легкое исправление было бы обернуть в try и catch, а в вашем выводе недействительный вход! – ApolloSoftware