Мне нужна программа, которая постоянно спрашивает пользователя, хотят ли они видеть треугольник. Если пользователь вводит «Y» или «y», он печатает треугольник, составленный из x со случайным количеством строк (1-20). После этого он снова запрашивает ответ y и печатает другой треугольник с другим количеством строк, пока пользователь не введет какой-либо ответ, который завершит программу.

Это код, который необходимо изменить, чтобы он постоянно искал ответ «Y» или «y», чтобы продолжить печать треугольника:

   import java.util.Scanner; 
   public class DrawTriangle {
       public static void main(String[] args)
   {
       Scanner sc = new Scanner(System.in);
       System.out.println("Enter the number of rows of the triangle");
       int rows = sc.nextInt();

       //iterates for the given number of rows
       for (int i = 1; i <= rows; i++) {

           //prints the number of spaces before the x
           for (int j = rows; j >= i; j--) {
            System.out.print(" ");
          }

           //prints the number of x's in each row
           for (int j = 1; j <= i; j++) {
            System.out.print("x ");
          }

           //prints new line for each row
           System.out.println();
    }
}

}

-3
HeWhoCodes777 27 Сен 2022 в 21:26

2 ответа

Эта программа проверяет, хочет ли пользователь нарисовать программу, и если ответ да, то она запросит количество строк и будет повторяться до тех пор, пока пользователь не введет что-то, что не является да.

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) throws InterruptedException {
        
        Scanner scanner = new Scanner(System.in);
        System.out.println("Draw triangle?");
        String answer = scanner.nextLine();
        
        while (answer.toLowerCase().equals("yes")) {
            
            System.out.println("Enter the number of rows of the triangle");
            int rows = scanner.nextInt();

            //iterates for the given number of rows
            for (int i = 1; i <= rows; i++) {

                //prints the number of spaces before the x
                for (int j = rows; j >= i; j--) {
                    System.out.print(" ");
                }

                //prints the number of x's in each row
                for (int j = 1; j <= i; j++) {
                    System.out.print("x ");
                }

                //prints new line for each row
                System.out.println();
                 
            }
            
            System.out.println("Draw triangle?");
            scanner.nextLine();
            answer = scanner.nextLine();
            
        }
        
        scanner.close();
            
    }

}
0
Alpha 27 Сен 2022 в 21:44

Ваша логика рисования треугольника работает, однако вы должны выделить ее в отдельный метод, поскольку вы можете вызывать его несколько раз.

Чтобы создать случайное число, используйте new Random().nextInt(). А для повторных попыток используйте цикл while.

import java.util.*;

public class Application {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        var rng = new Random();
        System.out.println("Do you want to draw a triangle? [y/Y]");
        var answer = sc.nextLine();
        while (answer.compareToIgnoreCase("y") == 0){
            System.out.println("Do you want to draw a triangle? [y/Y]");
            // create random int between 1 (inclusive) and 21 (exclusive)
            var rows = rng.nextInt(1, 21);
            // print the triangle
            printTriangle(rows);
            answer = sc.nextLine();
        }
        System.out.println("Exiting program");
    }

    public static void printTriangle(int rows) {
        //iterates for the given number of rows
        for (int i = 1; i <= rows; i++) {
            //prints the number of spaces before the x
            for (int j = rows; j >= i; j--) {
                System.out.print(" ");
            }
            //prints the number of x's in each row
            for (int j = 1; j <= i; j++) {
                System.out.print("x ");
            }
            //prints new line for each row
            System.out.println();
        }
    }
}
0
Mushroomator 27 Сен 2022 в 21:44