2015-04-19 2 views
1

Итак, вот простой код для настройки правильных «st», «nd», «rd», «th» с номером входа. Он поместился в петлю по какой-то причине. Никогда не думай об этом.Условный оператор печати не печатает остальную часть. Java

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! 

Вопрос где с делом «1-й» ??

+0

окей спасибо всем я понимаю. Я думал, что put '(" st ") :(i == 2?" Nd ": i == 3?" ​​Rd ":" th ")' вместо '" st ": i == 2? "Й": я == 3? «rd»: «th» будет ограничивать границы условного. но, видимо, это не сработает. Таким образом, всякое условное выражение в скобках сделало бы. спасибо всем :) –

ответ

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!"); 
        ^          ^
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. 
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!"); 
+0

Думал, что я не думаю, что это то, как OP намеревался это сделать - он тоже должен работать! – alfasin

Смежные вопросы