EndFrameless / pastebin

0 stars 0 forks source link

Test #1

Open EndFrameless opened 2 hours ago

EndFrameless commented 2 hours ago

import java.util.Scanner;

public class RectangleRenderer {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("Введите высоту прямоугольника: ");
    int height = scanner.nextInt();

    System.out.print("Введите ширину прямоугольника: ");
    int width = scanner.nextInt();

    for (int i = 0; i < height; i++) {
        // Вывод звездочек для каждой строки
        for (int j = 0; j < width; j++) {
            System.out.print("*");
        }

        // Переход на новую строку
        System.out.println();
    }
}

}

Изменения:

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

3,807/12,000

EndFrameless commented 2 hours ago

import java.util.Scanner;

public class RectangleRenderer {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    int height = 0;
    int width = 0;

    while (height <= 0 || width <= 0) { // Проверка на корректность ввода
        System.out.print("Введите высоту прямоугольника: ");
        if (scanner.hasNextInt()) {
            height = scanner.nextInt();
        } else {
            System.out.println("Неверное значение высоты. Введите целое положительное число.");
            scanner.next(); // Очистка буфера ввода
        }

        System.out.print("Введите ширину прямоугольника: ");
        if (scanner.hasNextInt()) {
            width = scanner.nextInt();
        } else {
            System.out.println("Неверное значение ширины. Введите целое положительное число.");
            scanner.next(); // Очистка буфера ввода
        }

        if (height <= 0 || width <= 0) {
            System.out.println("Высота и ширина должны быть положительными числами.");
        }
    }

    for (int i = 0; i < height; i++) {
        // Вывод звездочек для каждой строки
        for (int j = 0; j < width; j++) {
            System.out.print("*");
        }

        // Переход на новую строку
        System.out.println();
    }
}

}

Изменения в коде:

  1. Цикл while для проверки ввода:

    • Цикл while будет выполняться, пока height или width не будут положительными числами.
    • Внутри цикла проверяется, является ли введенное значение целым числом с помощью scanner.hasNextInt().
    • Если введено неверное значение, выводится сообщение об ошибке и очищается буфер ввода с помощью scanner.next().
    • Если height или width некорректны, выводится сообщение о том, что они должны быть положительными числами.
  2. Очистка буфера ввода:

    • scanner.next(); используется для очистки буфера ввода после ввода некорректного значения, чтобы избежать проблем с последующим считыванием.

Теперь код будет запрашивать высоту и ширину, пока не будут введены корректные положительные значения.

1,301/12,000

EndFrameless commented 2 hours ago

import java.util.Scanner;

public class RectangleRenderer {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    while (true) { // Бесконечный цикл для перезагрузки
        int height = 0;
        int width = 0;

        while (height <= 0 || width <= 0) { 
            System.out.print("Введите высоту прямоугольника (или 'reset' для перезапуска): ");
            if (scanner.hasNextInt()) {
                height = scanner.nextInt();
            } else {
                String input = scanner.next();
                if (input.equalsIgnoreCase("reset")) {
                    System.out.println("Перезапуск программы...");
                    break; // Выход из внутреннего цикла
                } else {
                    System.out.println("Неверное значение высоты. Введите целое положительное число или 'reset'.");
                }
            }

            System.out.print("Введите ширину прямоугольника (или 'reset' для перезапуска): ");
            if (scanner.hasNextInt()) {
                width = scanner.nextInt();
            } else {
                String input = scanner.next();
                if (input.equalsIgnoreCase("reset")) {
                    System.out.println("Перезапуск программы...");
                    break; // Выход из внутреннего цикла
                } else {
                    System.out.println("Неверное значение ширины. Введите целое положительное число или 'reset'.");
                }
            }

            if (height <= 0 || width <= 0) {
                System.out.println("Высота и ширина должны быть положительными числами.");
            }
        }

        if (height <= 0 || width <= 0) {
            // Если пользователь ввел 'reset', цикл Ⓝwhile (true)Ⓝ продолжит выполнение, 
            // перезапуская программу с начала.
            continue; 
        }

        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

}

EndFrameless commented 2 hours ago

import java.util.Scanner;

public class RectangleRenderer {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    while (true) {
        int height = 0;
        int width = 0;

        while (true) { 
            System.out.print("Введите высоту прямоугольника (или 'reset' для перезапуска): ");
            if (scanner.hasNextInt()) {
                height = scanner.nextInt();
                break; // Выходим из внутреннего цикла, если введено число
            } else {
                String input = scanner.next();
                if (input.equalsIgnoreCase("reset")) {
                    System.out.println("Перезапуск программы...");
                    break; // Выход из внутреннего цикла
                } else {
                    System.out.println("Неверное значение высоты. Введите целое число или 'reset'.");
                }
            }
        }

        if (height == 0) {
            continue; // Продолжаем цикл, если введено "reset"
        }

        while (true) {
            System.out.print("Введите ширину прямоугольника (или 'reset' для перезапуска): ");
            if (scanner.hasNextInt()) {
                width = scanner.nextInt();
                break; // Выходим из внутреннего цикла, если введено число
            } else {
                String input = scanner.next();
                if (input.equalsIgnoreCase("reset")) {
                    System.out.println("Перезапуск программы...");
                    break; // Выход из внутреннего цикла
                } else {
                    System.out.println("Неверное значение ширины. Введите целое число или 'reset'.");
                }
            }
        }

        if (width == 0) {
            continue; // Продолжаем цикл, если введено "reset"
        }

        // Отрисовка прямоугольника
        for (int i = 0; i < Math.abs(height); i++) {
            for (int j = 0; j < Math.abs(width); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

}

Изменения в коде:

  1. Убрана проверка на положительность:
    • Удалены условия height <= 0 и width <= 0 в циклах проверки ввода.
  2. Использование Math.abs():
    • В цикле отрисовки используется Math.abs(height) и Math.abs(width), чтобы отрисовать прямоугольник с правильной высотой и шириной, независимо от знака введенных чисел.

Теперь пользователь может вводить как положительные, так и отрицательные значения для высоты и ширины, и программа будет отрисовывать прямоугольник с соответствующими размерами.

2,731/12,000

EndFrameless commented 2 hours ago

import java.util.Scanner;

public class RectangleRenderer {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    // Это главный цикл, который крутится вечно, 
    // пока мы не закроем программу.
    while (true) {
        int height = 0;
        int width = 0;
        // этот цикл проверяет, что мы ввели число, если не число - то печатает сообщение
        while (true) { 
            System.out.print("Введите высоту прямоугольника (или 'reset' для перезапуска): ");
            // вот тут мы проверяем, что ввели число
            if (scanner.hasNextInt()) {
                // тут мы сохраняем значение в переменную
                height = scanner.nextInt();
                // выходим из этого цикла, если ввели число
                break; 
            } else {
                // если не число, то читаем текст
                String input = scanner.next();
                // если текст "reset", то перезагружаемся
                if (input.equalsIgnoreCase("reset")) {
                    System.out.println("Перезапуск программы...");
                    // выходим из этого цикла, если ввели "reset"
                    break; 
                } else {
                    System.out.println("Неверное значение высоты. Введите целое число или 'reset'.");
                }
            }
        }

        // тут мы проверяем, что ввели не "reset"
        if (height == 0) {
            // если ввели "reset", то продолжаем этот цикл
            continue; 
        }

        // этот цикл такой же, как предыдущий, но для ширины
        while (true) {
            System.out.print("Введите ширину прямоугольника (или 'reset' для перезапуска): ");
            if (scanner.hasNextInt()) {
                width = scanner.nextInt();
                break; 
            } else {
                String input = scanner.next();
                if (input.equalsIgnoreCase("reset")) {
                    System.out.println("Перезапуск программы...");
                    break; 
                } else {
                    System.out.println("Неверное значение ширины. Введите целое число или 'reset'.");
                }
            }
        }

        // тут мы проверяем, что ввели не "reset"
        if (width == 0) {
            // если ввели "reset", то продолжаем этот цикл
            continue; 
        }
        // а вот тут мы рисуем прямоугольник
        for (int i = 0; i < Math.abs(height); i++) {
            for (int j = 0; j < Math.abs(width); j++) {
                // тут мы рисуем звездочки
                System.out.print("*");
            }
            // тут мы переходим на новую строку
            System.out.println();
        }
    }
}

}

}