以下是相关代码:
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$
编辑:问题是这个方法从未被调用过。我正在取代的另一个是。一切都很好。
答案 0 :(得分:2)
您所展示的代码都不是“西北地区,阿尔伯塔省,堪察加半岛”的输出。
.translate()有什么作用?它必须在那里。
答案 1 :(得分:1)
我也没看到它打印has " + n + " borders:
,所以我要说代码永远不会因某种原因被执行
答案 2 :(得分:1)
我只能看到
System.out.print (" has " + n + " borders: ") ;
实际上我不明白为什么你会看到任何其他输出
“有5个边框:”
答案 3 :(得分:1)
上面的代码段会开始一个新行。问题是没有调用printBoarders方法。
答案 4 :(得分:0)
我相信它是从最后一次System.out.print调用离开它的行的中间开始的。
来自PrintWriter的文档,例如
public void println(String x)
打印字符串然后终止 这条线。
答案 5 :(得分:0)
只有最后一个印刷品是println,第一个是印刷品,所以只有空格“”在最后打印到新行...
编辑:你的意思是你多次打电话?Y
答案 6 :(得分:0)
只需快速扫描此代码,看起来似乎已经达到了println()。实际上,我甚至没有看到你如何得到你的输出。这是完整的代码吗?这是编写小型单元测试的一个很好的例子。