【问题标题】:Line break after every 20th number in Java (for-loop)Java中每20个数字后的换行符(for循环)
【发布时间】:2022-11-01 19:01:36
【问题描述】:

我正在尝试编写一个显示数字 1 到 100 的程序。我想在每 20 个数字后换行。我曾尝试使用一个计数器循环,它在每 20 个数字后自行重置,但程序无限运行。我该如何解决?

public class zahlen1_bis_100 {
    public static void main(String[] args) {


        for (int x = 1; x <= 100; x++) {
            for (int counter = 1;counter <= 20; counter++) {

                    if (counter == 20) {

                        System.out.println();
                        counter = 1;
                    }
                }
             System.out.print(x + " ");
            }

        }

    }

【问题讨论】:

  • 提示:删除内部循环(仅 for 语句)(选项 x % 20 将每 20 个数字为零 - 如果 x 可被 20 整除)
  • 谢谢你的提示。我用它来创建一个令人满意的解决方案。

标签: java for-loop numbers line-breaks


【解决方案1】:

使用内部循环没有意义。取而代之的是,您可以实现 if 语句以进入下一行。

逻辑 => 如果数字是 20 的倍数,则进入下一行。

实施 =>

public static void main(String[] args) {


    for (int x = 1; x <= 100; x++) {
        System.out.print(x + " ");
        if(x%20==0){
            System.out.println();
        }
    }

输出 =>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

【讨论】:

    【解决方案2】:
                for (int x = 1; x <= 100; x++) {
                     System.out.print(x + 
                             (x % 20 == 0 ? "
    " : " ")
                                 );
                     
                    }
    
                }
    

    在打印内部,它打印x,然后检查x 是否是20 的倍数以打印一个新行;否则打印一个空格。它采用Ternary Operator 格式,但也可以用普通的 if 块格式编写:

                for (int x = 1; x <= 100; x++) {
                    
                    System.out.print(x);
                    
                    if (x % 20 == 0) 
                        System.out.print(" ");
                    else
                        System.out.println();
                     
                    }
    
                }
    

    【讨论】:

    • 感谢您的帮助。现在我知道了三元运算符格式。
    【解决方案3】:

    谢谢大家的帮助!我想创建一个“统一”的输出外观,所以我最终得到了以下代码:

    public class zahlen1_bis_100 {
        public static void main(String[] args) {
    
    
            for (int x = 1; x <= 100; x++) {
    
    
                if (x < 10) {
                    System.out.print(x + "  ");
    
                } else {
                    System.out.print(x + " ");
                }
                if (x % 20 ==0) {
                    System.out.println();
                }
    
            }
    
    
        }
    }
    [Result][1]
    
    
      [1]: https://i.stack.imgur.com/66tXZ.png
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2020-09-16
      • 2014-01-15
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多