簡體   English   中英

Java:是否可以在for循環內換行x次?

[英]Java: Is it possible to make line break x times inside for loop?

我嘗試使用Google搜索我的問題StackOverflow,但沒有找到任何答案。

我做了一個數組,其中大小和值都是隨機生成的。 當數組值已被打印20次時,我想換行,但不打印其余值並始終換行。

這是我的代碼:

public static void catArr() {

    Random rändöm = new Random();
    int size = rändöm.nextInt(100);

    int[] arr = new int[size];

    for (int i = 0; i < size; i++) {

        arr[i] = rändöm.nextInt(100);
    }

    Arrays.sort(arr);

    for (int i = 0; i < size; i++) {

        System.out.print(" " + arr[i]);
        if (i > 20)
            System.out.println(); //How to do this only once?
        else if (i > 40)
            System.out.println(); //Same here?
    }

}

這是生成的輸出之一:

 3 8 10 25 30 31 34 38 46 50 55 59 62 66 67 68 68 68 72 76 76 81
 82
 83
 84
 86
 91
 92
 93
 94
 94
 97

我認為解決此問題的一種方法是使用二維數組,但我想知道是否還有另一種方法。

是的,感謝Patric,我得到了想要的結果:

0   2   3   7   7   9   11  14  14  16  18  19  24  25  26  28  28  30  30  31  
31  33  33  34  41  41  41  42  43  44  45  46  51  51  52  53  59  60  61  62  
62  62  63  65  65  67  67  68  69  70  74  74  76  78  82  83  84  84  87  88  
89  93  93  94  94  94  95

嘗試使用

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

如果我除以20,則沒有余數,然后打印新行!

從字面上看,這將完成您似乎想要的操作:

    if (i == 20)
        System.out.println();
    else if (i == 40)
        System.out.println();

但是我有一種感覺,您實際上想在20、40、60等之后添加換行符。

    if (i % 20 == 0) 
        System.out.println();

而且,如果您想在末尾精確輸出一個換行符,則需要這樣的代碼:

    for (int i = 0; i < size; i++) {
        if (i > 1 && i % 20 == 1) {
            System.out.println();
        System.out.print(" " + arr[i]);
    }
    System.out.println();

也許

if (i % 20==0) 

可以解決您的其他問題。

使用(++i % 20) == 0並從循環中刪除i++ ; 預先增加避免第一次不必要的換行。

您可以將boolean用於Sys out。

boolean myBoolean = true;
if(myBoolean){
    //print
    myBoolean = false; //set boolean to false.
}

另一方面,根據我的喜好,我仍然堅持使用整數標記。

int isTrue = 1;
if(isTrue == 1){
    //print
    isTrue = 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM