【问题标题】:Printing a new line every third integer in java在java中每隔三个整数打印一个新行
【发布时间】:2017-02-21 22:39:48
【问题描述】:

假设我想打印从 1 到 10 的奇数。但它会每隔第三个数字换行。您将如何控制可以在 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 ,我会收到一个错误,说它是重复的 我在想,我应该做一个数组。这样每第三个索引,我就可以打印出一个新行 但我不能把它翻译成代码

【问题讨论】:

  • 预期输出是什么?
  • 你的内部 for 循环中怎么不是无限循环?您需要更新您发布的代码吗?

标签: java arrays indexing printing integer


【解决方案1】:

如果您使用的是 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!

【讨论】:

    【解决方案2】:

    您不需要多个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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      相关资源
      最近更新 更多