import java.util.Scanner;
public class Crescente {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double primo = in.nextDouble();
double secondo = in.nextDouble();
double terzo = in.nextDouble();
if(primo > secondo && primo > terzo) {
if(secondo > terzo) {
System.out.println(primo+" "+secondo+" "+terzo);
}else {
System.out.println(primo+" "+terzo+" "+secondo);
}
}else if(secondo > primo && secondo > terzo) {
if(primo > terzo) {
System.out.println(secondo+" "+primo+" "+terzo);
}else {
System.out.println(secondo+" "+terzo+" "+primo);
}
}else if(terzo > primo && terzo > secondo) {
if(primo > secondo) {
System.out.println(terzo+" "+primo+" "+secondo);
}else {
System.out.println(terzo+" "+secondo+" "+primo);
}
}
in.close();
}
}
如果您输入整数,我的程序会运行,但是如果输入浮点数,则会出现此错误:
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at poo.Crescente.main(Crescente.java:8)
我不知道为什么会出现此错误,因为我对所有nextDouble
的所有变量都使用了double
。请帮忙。
答案 0 :(得分:1)
就像您来自意大利一样,您的默认语言环境似乎设置为LOCALE.ITALY
。将其更改为以下
Scanner in = new Scanner(System.in);
in.useLocale(Locale.ENGLISH);
// rest of the code
通过分别切换Locale.ITALY
和Locale.ENGLISH
,我能够用逗号分隔的数字(4,2)和十进制分隔的数字(4.2)运行该程序。
来自文档:
useLocale(Locale locale)
将此扫描仪的语言环境设置为指定的语言环境。