Как зациклить этот оператор переключения, если он используется по умолчанию?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как зациклить этот оператор переключения, если он используется по умолчанию?

Сообщение Anonymous »

В своем домашнем задании для класса я написал оператор переключения, который будет вычислять площадь или периметр прямоугольника на основе ввода пользователя, и я хотел сделать так, чтобы, если пользователь введет неверный ввод, программа зациклилась. вернуться к началу, где пользователю предлагается ввести «A» или «P» для соответствующего расчета.

Код: Выделить всё

import java.util.Scanner;

public class Switch_Statement_Practice {

//Create a program that calculates the area or perimeter of a rectangle based on user input.

public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int height;
int width;
char choice;

System.out.println("Do you want to calculate the area or perimeter of the rectangle? Type 'A' for area or 'P' for perimeter.");
choice = scnr.next().charAt(0); //.charAt(0) returns the character at the specified index position in a string. 0 returns the first characater in a given string.

switch (choice) {
case 'A' -> {
System.out.println("We are going to calculate the area.");
System.out.println("");
System.out.println("Enter the height.");
height = scnr.nextInt();
System.out.println("Enter the width");
width = scnr.nextInt();
System.out.println("The area is " + height * width + " units.");
break;
}
case 'P' -> {
System.out.println("We are going to calculate the perimeter.");
System.out.println("");
System.out.println("Enter the height.");
height = scnr.nextInt();
System.out.println("enter the width.");
width = scnr.nextInt();
System.out.println("The perimeter is: " + ((2 * height) + (2 * width)));
break;
}
default -> {
System.out.println("Invalid input. Please enter 'A' or 'P' (Without quotes).");
}
}
}
Я попробовал объявить логический недопустимый ввод; и объявить недопустимый ввод = выбор != 'A' && выбор != 'P'; и сделать while(invalidInput) {System.out.println("Неверный ввод. Введите «A» или «P»»); choice = scnr.nextLine().charAt(0); цикл, в котором пользователю предлагалось повторно ввести выбор, но я ввел бесконечный цикл.

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-defaults
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»