所以这是一个简单的代码,用输入数字调整右边的“st”,“nd”,“rd”,“th”。 由于某种原因,它被置于一个循环中。没关系。
System.out.println("How many?");
int num = x.nextInt();
for(int i=1;i<=num;i++){
System.out.print("Enter the " + i);
System.out.println(i==1? ("st"):(i==2? "nd":i==3? "rd":"th") + " number!");
}
当num输入为5
时,这里是输出:
Enter the 1st
Enter the 2nd number!
Enter the 3rd number!
Enter the 4th number!
Enter the 5th number!
问题是“数字!”案例“1st”??
答案 0 :(得分:3)
请注意您的打印条件:
i == 1 ? ("st") : ((i==2? "nd":i==3? "rd":"th") + " number!")
^ ^
true false
我在假部分添加了括号,因此您更容易理解。
我相信你想要的是:
(i == 1 ? ("st") : (i==2? "nd":i==3? "rd":"th")) + " number!"
^
Now we add it to the result of what is returned for the condition.
答案 1 :(得分:3)
你忘记了一对牙套,改变了:
System.out.println(i==1? ("st"):(i==2? "nd":i==3? "rd":"th") + " number!");
为:
System.out.println((i==1? ("st"):(i==2? "nd":i==3? "rd":"th")) + " number!");
^ ^
答案 2 :(得分:2)
System.out.println(i==1? ("st"):(i==2? "nd":i==3? "rd":"th") + " number!");
是问题的根源。你看到你有+“数字!”);之后:分开第1和第2 /第3?你需要两次。
System.out.println(i==1? ("st number"):(i==2? "nd":i==3? "rd":"th") + " number!");
或
System.out.println((i==1? ("st"):(i==2? "nd":i==3? "rd":"th")) + " number!");