2010-03-24 57 views
-1

下面是相关代码:为什么这个println命令不会启动一个新行?

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$

编辑:这个问题可能永远不会被调用此方法。另一个我正在取代的是。一切都很好。

+4

在我看来,输出不是来自您在此处显示的代码。 “有”和“边界:”在哪里? – 2010-03-24 17:55:46

+1

这是风险吗?凉! – OscarRyz 2010-03-24 18:00:09

回答

1

上面的代码snippit会开始一个新行。问题是printBoarders方法没有被调用。

0

我相信它是从最后一个System.out.print调用离开它的中间开始的。

来自PrintWriter的文档,例如,

public void println(String x) 

打印String,然后终止 行。

+0

你是什么意思? – David 2010-03-24 17:56:52

0

只有最后打印时调用println,首先是只打印所以才有了空间“”印在年底新线...

编辑:当你调用它多次你的意思是?Ÿ

+0

如果它打印在一个新行上,则davvid-names-backboo-pro:〜davidname $将打印在它的下面。 – David 2010-03-24 17:56:10

1

我没有看到它打印has " + n + " borders:要么,所以我要去说的代码是从来没有出于某种原因执行

1

我只能看到

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

其实我不明白为什么你看到任何其他输出,那么

“有5个边界:”

+0

你是什么意思这就是你所看到的? – David 2010-03-24 17:56:36

+1

@David:这意味着你发布了错误的代码和平(或者最好说你只发布了部分代码) – Roman 2010-03-24 17:57:35

0

就迅速扫描这些代码,它看起来像的println()似乎是到达。其实我甚至都没有看到你是如何得到你的输出的。这是完整的代码。这是编写小单元测试的好例子。

+0

为什么它看起来没有达到? – David 2010-03-24 17:58:19

2

您所显示的代码都不是您输出的内容“Northwest Territory,Alberta,Kamchatka”。

.translate()是做什么的?它必须在那里。

相关问题