在java中每隔三个整数打印一行

在java中每隔三个整数打印一行,java,arrays,indexing,printing,integer,Java,Arrays,Indexing,Printing,Integer,假设我想打印出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 = in

假设我想打印出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,我会得到一个错误,说它是重复的 我在想,我应该做一个数组。这样,每三个索引,我就可以打印出一行新的内容 但我无法将其转换为代码

您不需要多个if条件和for循环中未使用的变量,如果您只想打印所有数字并在每3个数字后打印一行新行,则可以使用计数器完成,例如:


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

试一试

预期的输出是什么?在您的内部for循环中,这怎么不是一个无限循环?你需要更新你发布的代码吗?
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