【问题标题】:Java - Output integers up to user input integer in a single lineJava - 在单行中输出整数到用户输入的整数
【发布时间】:2012-12-06 22:33:00
【问题描述】:

我有一个任务要创建一个提示用户输入整数的程序,然后使用 while 循环根据用户输入创建一个乘法表。

输出乘法表必须包括标题行和列。我坚持的是如何创建标题行,因为标题必须计数的数字取决于用户输入。

我在 while 循环中创建了标题列,用于格式化行,因为每次循环通过时都会创建一个新行。但是标题行只打印一次,因此我不能使用格式化列的 while 循环来创建它。

如何创建标题行,以使用户输入递减回 1,并输出用户输入中的所有整数值 1、2、3、...?

这是我所拥有的:

import java.util.Scanner;
public class Multiplication
{
    public static void main(String[] args)
    {
    int number;
    String yesno = "Y";
    Scanner keyboard = new Scanner(System.in);
    System.out.print ("This program generates a multiplication table ");
    System.out.println("based on a number you enter.");


    while(yesno.equalsIgnoreCase("Y"))
    {
        System.out.println("Please enter a number.");
        number = keyboard.nextInt();

        int row = 1;
        int column = 1; 

        System.out.println(" |" + MAKETHISWORK + "\t"); //THIS IS WHERE I'M STUCK.
        System.out.println("--------------------");          

        while(number>0)  
        {     
            row = 1;
            while(row <= number)
            {
                System.out.print(row + "|");

                column = 1; 
                while(column <= number)
                {

                    System.out.print(row*column + "\t");   
                    column ++;

                } //END WHILE COLUMN <= NUMBER
                System.out.println();
                row ++;

            } //END WHILE ROW <=NUMBER
            System.out.println();

            while(number>0)
            {
                number--;
            }

        } //END WHILE NUMBER >0

        System.out.println("Would you like to enter another number? (Y/N) ");
        yesno = keyboard.nextLine();
        yesno = keyboard.nextLine();
    } //END WHILE YESNO IS Y

    while(yesno.equalsIgnoreCase("N"))
    {
        System.out.println("Thanks for participating!");
        break;
    }
}
}

【问题讨论】:

    标签: java while-loop


    【解决方案1】:

    为什么不直接使用另一个循环来为该值构建一个字符串?

    StringBuilder builder = new StringBuilder();
    for (int i = 1; i <= number; i++) {
        builder.append(i).append(" ");
    }
    System.out.println(" |" + builder.toString() + "\t");
    

    请注意,这将创建一个以空格分隔的数字字符串,直到输入数字为止。如果您想要不同的分隔符,只需附加不同的值即可。

    【讨论】:

      猜你喜欢
      • 2012-01-29
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 2020-08-15
      相关资源
      最近更新 更多