2016-06-01 5 views
1

このループの出力を1行に15文字しか書式設定できない場合があります。誰かが助けてくれますか?Javaで最大文字出力を制限しますか?

public class ASCII { 

public static void main(String[] args) { 

    for (int ascii = 43; ascii <= 120; ascii++) { 
     System.out.print((char)ascii + " "); 
    } 

} 

}

+0

は、あなたが印刷され、それが15に当たったとき、新しい行を印刷してきたどのように多くの文字を追跡します。 – khelwood

+0

あなたは印刷する前にこれを挿入することができます: 'if(ascii-43%15 == 0){System.out.println(); } '。しかし、プログラムの開始時に空の行が得られます。あなたがそれに耐えられないならば、他人が与えたより複雑な解決策の1つを選んでください。 – Gendarme

+0

@Gendarmeそれは良い解決策ですが、アスキーから42を引いて、括弧で囲む必要があります。これは、モジュラスが減算よりも優先順位が高いからです。例: 'if((ascii-42)%15 == 0)' –

答えて

1

これは、それを達成します:

for (int ascii = 43, i = 1; ascii <= 120; ascii++) { 
    System.out.print((char)ascii + " "); 

    if (i++ % 15 == 0) 
    { 
      System.out.println(); 
    } 
} 
+0

素晴らしいです、ありがとうございます! 主に私はちょうど前のifループでforループを試してみたときのような互換性のあるループのタイプについて混乱していました。エラーを表示していて、あなたの解決策はそれをクリアしました! – AvenNova

+0

@AvenNova問題ありません! –

関連する問題