Open EndFrameless opened 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();
}
}
}
Изменения в коде:
Цикл while для проверки ввода:
Очистка буфера ввода:
Теперь код будет запрашивать высоту и ширину, пока не будут введены корректные положительные значения.
1,301/12,000
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();
}
}
}
}
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();
}
}
}
}
Изменения в коде:
Теперь пользователь может вводить как положительные, так и отрицательные значения для высоты и ширины, и программа будет отрисовывать прямоугольник с соответствующими размерами.
2,731/12,000
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();
}
}
}
}
}
import java.util.Scanner;
public class RectangleRenderer {
}
Изменения:
Теперь код рисует прямоугольник с заданными пользователем высотой и шириной.
3,807/12,000