2013-04-16 7 views
0

Я начал изучать Java, и я создаю этот код из книги. Это код в Java:Почему печать новой строки не работает?

public class MyFirstApp { 
    public static void main (String[] args) { 
     int x = 1; 
     while (x<3){ 
      System.out.print("Doo"+x); 
      System.out.print("Bee"); 
      x=x+1; 
     } 
     if (x==3){ 
      System.out.println("Do"+x); 
     } 
    } 
} 

Почему выход:

Doo1BeeDoo2BeeDo3 

вместо

Doo1BeeDoo2Bee 
Do3 
+2

Прежде всего сделайте одно, прочитайте официальные документы для обоих методов. http://docs.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29 Используйте эту ссылку для чтения о методах потока печати. Вы получите свое решение. –

ответ

5

только вызов последний является println ... и println добавляет символ новой строки в конце того, что это печать. Делать, если вы хотите, символ новой строки перед тем окончательный Do3 вы хотите что-то вроде:

if (x==3){ 
    System.out.println(); 
    System.out.println("Do"+x); 
} 

(Это не совсем понятно, почему чек там вообще x обязательно будет 3..)

3

вы печатаете разрыв строки после do3. println добавляет разрыв строки после сообщения, а не раньше.

Смотрите документацию println():

выводит строку, а затем прекратить линию. Этот метод ведет себя как , хотя он вызывает печать (String), а затем println().

Если вы хотите, попробуйте

System.out.println(); 
System.out.println("Do"+x); 

или

System.out.println("\nDo"+x); 

в последнем случае, чтобы получить напечатанное на отдельной строке.

1

Вы распечатываете разрыв строки после Do3.

попробовать это

System.out.println(); 
    System.out.println("Do"+x); 
2

Потому что println() движется к новой линии после печатающие свой аргумент, который в этом случае находится в самом конце вывода.

1

Потому что System.out.print() будет печатать до System.out без новой строки. System.out.println() переходит к новой строке после печати строки, а не перед ней.

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