2016-02-08 3 views
-2

Как правильно использовать \ r в Java для таймера обратного отсчета? Я хочу пересчитать от 20 до 0 и напечатать это, я хочу обновить это вместо того, чтобы писать в новой строке, поэтому я использовал \ r. он работает, но когда дело доходит до 10, после этого, вместо того, чтобы писать 9, он пишет 90, 80 и так далее ... PLZ обновить мой код для решения проблемы. спасибо вот мой кодИспользование r в Java для таймера обратного отсчета

int timer1=20; 
int timer2=0; 
String timer3="\r"; 
while(timer1>timer2){ 
try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();} 
System.out.print(timer3+timer1); 
System.out.flush(); 
timer1--;} 
+0

Это потому, что второй символ '0' остается там. используйте '09',' 08' и т. д. – Hackerdarshi

+0

Или просто напечатайте дополнительный символ пробела в конце. – Kayaman

+0

@ Kayaman это работает! используя пробелы в конце. благодаря – Briana

ответ

0

Ваши имена переменных Ae запутанным, мягко говоря. Проблема, с которой вы сталкиваетесь, заключается в том, что \ r ведет вас к началу строки, и вы не перезаписываете предыдущий вывод, так что, когда вы выписываете номер 9, вы все равно остаетесь с 0 от 10.

Измените эту строку:

System.out.print(timer3+timer1); 

к:

System.out.print(timer3+timer1+ " "); 

и это должно исправить положение.