2017-02-21 10 views
0

私は1から10までの奇数を印刷したいと言っていますが、3番目ごとに改行します。どのようにして、Javaコンソールの各行に印刷できる項目の数を制御しますか?Javaの第3の整数ごとに新しい行を印刷する

がここにこれまでに私のコードです、

forループ
public static void main(String[] args) 
{ 
    Scanner input = new Scanner(System.in); 


    int z,t; 
    System.out.println("Enter two numbers: "); 
    z = input.nextInt(); 
    t = input.nextInt(); 

    humbala(z,t); 

} 

public static void humbala (int x, int y) 
{ 

    for(int a; x < y; x++) 
    { 
     if(x % 2 !=0) 
     { 
      System.out.print(x+ " "); 

      for (int i=0; i<y; i++) 
      { 
       if(i > 3) 
       { 
       System.out.println(); 
       } 
       i = 0; 

      } 



     } 

    } 

} 

}

私は少し奇妙です。私はカウンター変数を持っていますが、実際にはそれを使用したことはありませんが、とにかく動作しています。問題は、もし私がxを置くと、重複であるというエラーが出る 私は配列を作るべきだと思っています。すべての第三インデックスように、私は新しい行 をプリントアウトすることができますが、私はあなただけのすべての印刷したい場合は、forループ内で複数のif条件と未使用variableを必要としない

+0

それを試してみてください? –

+0

内部for-loopにはどのように無限ループがありますか?投稿したコードを更新する必要がありますか? – mmcrae

答えて

0

をコーディングすることを翻訳することはできません数字と、それはcounter、例えばで行うことができ、すべての3つの数字の後に新しい行を印刷:

public static void main(String[] args) throws IOException { 
    try(Scanner input = new Scanner(System.in);){ 
     int z, t; 
     System.out.println("Enter two numbers: "); 
     z = input.nextInt(); 
     t = input.nextInt(); 
     humbala(z, t); 
    } 
} 

public static void humbala(int x, int y) { 
    int counter = 0; 
    for (int i = x; i <= y; i++) { 
     if(counter++ % 3 == 0){ 
      System.out.println(); 
     } 
     System.out.println(i); 
    } 
} 
0

あなたがJava8を使用している場合は、同じ行の項目を印刷するには、このような何かを行うことができますが、あなたに注意してください。代わりにArrayListを使用することができますが、私はそれらについて学んだことがわかりません:

import java.util.Arrays; 
import java.util.Scanner; 

class Main { 
    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter start number: "); 
    int start = input.nextInt(); 
    System.out.print("Enter end number: "); 
    int end = input.nextInt(); 
    humbala(start, end); 
    } 

    public static void humbala(int start, int end) { 
    int count = 0; 
    String[] numbersLine = new String[3]; 
    for (int i = start; i <= end; i++) { 
     if(count != 0 && count % 3 == 0) { 
     System.out.println(String.join(" ", numbersLine)); 
     Arrays.fill(numbersLine, ""); //for last line 
     } 
     numbersLine[count % 3] = String.valueOf(i); 
     count++; 
    } 
    System.out.println(String.join(" ", numbersLine)); //print any remaining numbers 
    } 
} 

使用例:

Enter start number: 1 
Enter end number: 10 
1 2 3 
4 5 6 
7 8 9 
10 

予想される出力は何here!

関連する問題