0
import java.util.Scanner;
import java.util.Random;
public class DrawTriangle
{
public static void main(String[] args)
{
    Scanner scan = new Scanner(System.in);
    System.out.println ("Do you want to see a triangle? Insert y to continue");
    String input = scan.next();
    boolean cont = false;

    if ((input.equals("y")))
    {
        cont = true;
        double a = (40);
        double b = (30);
        double height = (Math.random() * (b - a + 1) + a);
        for (int x = 1; x <= height; x++)
        {
            for (int y = 0; y < height - x; y++) 
            {
                System.out.print(" ");
            }
            for (int y = 0; y < x; y++) 
            {
                System.out.print("x ");
            }
            System.out.println();

        }

    }
    else 
    {
        cont = false;
        System.out.println();
        System.out.println ("Program ended");
    }

}
}

ユーザーが「y」を入力したときに三角形を描くプログラムが必要です。これは機能しますが、ユーザーが以前に「y」を押した場合は、ユーザーにもう一度入力を入力するように求めるプログラムが必要です。また、三角形が同じサイズであるたびに、乱数が機能しているかどうかもわかりません...

4

2 に答える 2

1

ifステートメントをwhileに変更し、ループ内でユーザー入力を再度要求し、elseを削除します

while ((input.equals("y")))
{
    cont = true;
    double a = (40);
    double b = (30);
    double height = (Math.random() * (b - a + 1) + a);
    for (int x = 1; x <= height; x++)
    {
        for (int y = 0; y < height - x; y++) 
        {
            System.out.print(" ");
        }
        for (int y = 0; y < x; y++) 
        {
            System.out.print("x ");
        }
        System.out.println();

    }
    System.out.println ("Do you want to see a triangle? Insert y to continue");
    input = scan.next();

}

    System.out.println();
    System.out.println ("Program ended");
于 2012-11-22T22:10:04.670 に答える
1

以下のように、ifステートメントをループに交換する必要があります。

import java.util.Scanner;
import java.util.Random;
public class DrawTriangle
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        boolean cont = false;
        String input = "y";
        while (input.equals("y"))
            {
                System.out.println ("Do you want to see a triangle? Insert y to continue");
                input = scan.next();
                cont = true;
                double a = (40);
                double b = (30);
                double height = (Math.random() * (b - a + 1) + a);
                for (int x = 1; x <= height; x++)
                    {
                        for (int y = 0; y < height - x; y++) 
                            {
                                System.out.print(" ");
                            }
                        for (int y = 0; y < x; y++) 
                            {
                                System.out.print("x ");
                            }
                        System.out.println();

                    }

            }
                        cont = false;
                System.out.println();
                System.out.println ("Program ended");

    }
}
于 2012-11-22T22:16:10.957 に答える