Почему эта команда println не начинает новую строку? - PullRequest
0 голосов
/ 24 марта 2010

Вот соответствующий код:

public static void printBoarders (Territory x) 
{
    int t = 0 ; 
    int n = 0 ; 
    for (int i = 0; i<x.borders.length; i++)
    {
        if (x.borders[i] == -1) 
            t = i ; 
    }
    for (int j = 0; j<x.borders.length; j++) 
    {
        if (x.borders[j] == 1) 
            n++ ;
    }

    Territory.translate (t) ;
    System.out.print (" has " + n + " borders: ") ;
    Territory.translate (x.borders) ;
    System.out.println (" ") ; 
}

Когда я запускаю это, я получаю все на одной строке без разрыва строки. Почему System.out.println (" ") ; не создает разрыв строки?

Вот пример того, что получается:

Northwest Territory, Alberta, Kamchatka, hidavid-names-macbook-pro:~ davidname$

РЕДАКТИРОВАТЬ: проблема была в том, что этот метод никогда не вызывался. Другой, который я заменял, был. Все хорошо.

Ответы [ 7 ]

2 голосов
/ 24 марта 2010

Ни один из кодов, которые вы показываете, не выводит "Северо-Западный край, Альберта, Камчатка".

Что делает .translate ()? Это должно быть там.

1 голос
/ 24 марта 2010

Приведенный выше фрагмент кода будет начинать новую строку. Проблема в том, что метод printBoarders не вызывается.

1 голос
/ 24 марта 2010

Я вижу только

System.out.print (" has " + n + " borders: ") ;

На самом деле я не понимаю, почему вы видите какой-либо другой вывод, чем

"имеет 5 границ:"

1 голос
/ 24 марта 2010

я тоже не вижу печати has " + n + " borders:, так что я собираюсь сказать, что код по какой-то причине никогда не выполняется

0 голосов
/ 24 марта 2010

Просто быстро сканируя этот код, похоже, что println () действительно достигнут. На самом деле я даже не вижу, как вы получили результат, который вы сделали. Это полный код Это отличный пример для написания небольшого модульного теста.

0 голосов
/ 24 марта 2010

Только последняя печать - println, первая - просто печать, поэтому только пробел "" печатается в новой строке в конце ...

РЕДАКТИРОВАТЬ: Вы имеете в виду, когда вы звоните несколько раз? Y

0 голосов
/ 24 марта 2010

Я полагаю, что это начинается с середины строки, из которой вышел последний вызов System.out.print

из документов для PrintWriter, например

public void println(String x)

Печатает строку и затем завершается линия.

...