3

整数のユーザー入力を求めるプログラムを作成し、whileループを使用してユーザー入力に基づいて掛け算の九九を作成するという割り当てがあります。

出力乗算テーブルには、ヘッダーの行と列が含まれている必要があります。ヘッダーがカウントアップする必要のある数はユーザー入力に依存するため、私が固執しているのはヘッダー行の作成方法です。

ループがステップスルーされるたびに新しい行が作成されるため、行をフォーマットするwhileループにヘッダー列を作成しました。ただし、ヘッダー行は1回しか出力されないため、列をフォーマットして作成する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;
    }
}
}
4

1 に答える 1

2

別のループを使用して、その値の文字列を作成してみませんか?

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

これにより、入力番号までの数字のスペース区切りの文字列が作成されることに注意してください。別の区切り文字が必要な場合は、別の値を追加するだけです。

于 2012-12-06T22:40:47.957 に答える