2017-02-21 58 views
0

可以說我想打印出1到10之間的奇數,但它會在每個第三個數字中新建一行。如何控制可以在java控制檯的每行上打印的項目數量。在java中每三個整數打印一個新行

這裏是我的代碼,到目前爲止,

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; 

      } 



     } 

    } 

} 

}

我的for循環是有點怪。我有一個計數器變量a,但從來沒有真正使用它,但無論如何它工作。事情是,如果我把x,我得到一個錯誤,說它是重複的 我在想,我應該做一個數組。讓每一個第3指標,我可以打印出一個新行 但我無法將它的代碼

+0

什麼是預期的輸出? –

+0

這不是你的內循環中的無限循環嗎?你需要更新你發佈的代碼嗎? – mmcrae

回答

0

你不需要多if條件和for循環未使用variable,如果你只想打印所有這些數字並打印新的生產線每3個數字後,它可以與counter來完成,例如:

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!