-1

関連するコードは次のとおりです。

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 (" ") ; 
}

これを実行すると、改行なしですべてが1行に表示されます。System.out.println (" ") ;改行を作成しないのはなぜですか?

これは、出力が最終的にどのようになるかの例です。

北西部領土、アルバータ、カムチャッカ、hidavid-names-macbook-pro:〜davidname $

編集:問題は、このメソッドが呼び出されなかったことでした。私が交換していた別のものはでした。すべては順調です。

4

7 に答える 7

2

表示しているコードはいずれも、「北西部領土、アルバータ、カムチャツカ」を出力しているものではありません。

.translate()は何をしますか?そこにある必要があります。

于 2010-03-24T17:58:05.537 に答える
1

上記のコードsnippitは、新しい行を開始します。問題は、メソッドprintBoardersが呼び出されていないことです。

于 2010-03-24T18:02:28.350 に答える
1

私もそれが印刷されているのを見has " + n + " borders:ないので、コードが何らかの理由で実行されることはないと言うつもりです

于 2010-03-24T17:54:41.623 に答える
1

しか見えない

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

実は、なぜ他の出力が表示されるのかわかりません。

「5つの境界線があります:」

于 2010-03-24T17:54:43.480 に答える
0

最後のSystem.out.print呼び出しがそれを残した行の真ん中から始まっていると思います。

PrintWriterのドキュメントから、例えば

public void println(String x)

文字列を出力してから、行を終了します。

于 2010-03-24T17:54:25.750 に答える
0

最後の印刷のみがprintlnであり、最初の印刷は単に印刷であるため、スペース""のみが最後の新しい行に印刷されます。

編集:あなたがそれを複数回呼び出すとき、あなたはそれを意味しますか?Y

于 2010-03-24T17:54:36.863 に答える
0

このコードをすばやくスキャンすると、println()に到達しているように見えます。実際、私はあなたがどのようにあなたがした出力を手に入れたのかさえ見ていません。これは完全なコードですか。これは、小さな単体テストを作成するのに最適なケースです。

于 2010-03-24T17:55:59.047 に答える