Почему мой код имеет ошибку компиляции после оператора else? - PullRequest
0 голосов
/ 04 сентября 2018

Потерпи меня.

После создания оператора if-else каждый раз, когда я проверяю, чтобы увидеть оператор else, может ли он вернуться в меню, если строка не соответствует истине, она всегда заканчивается ошибкой, такой как: Исключение в потоке "main" java.lang.NumberFormatException: для входной строки: ""

public class geo {
public static void main(String[] args){
byte choice = 0;
int num1 = 0;
int num2 = 0;
int num3  = 0;
float num4 ;
double result1 = 0;
boolean quit;
String UnitofMeasurement;
String feet = "feet";
String inches = "inches";
DecimalFormat format = new DecimalFormat("0.00");
Scanner key = new Scanner(System.in);
while (choice != 1) {
System.out.println("\t1. Determine the perimeter of a square");
switch (choice){
  case 1:
  System.out.println("The perimeter of a square is computed 
  by multiplying the measure of one side by 4.");
            System.out.println("Enter the unit of measurement(i.e. inches/feet):");
            UnitofMeasurement = key.next();// gets the unit of measurement
            if(UnitofMeasurement.equals(feet)||UnitofMeasurement.equals(inches)){
            System.out.println("You have chosen " + UnitofMeasurement + " as the unit of measurement.");
            System.out.println("Enter the measurement of one side: ");
            num1 = key.nextInt();
            System.out.println("Side of the square: "+ format.format(num1));
            key.nextLine();
            result1 = num1 * 4;
            System.out.println("Perimeter of the square = "+ format.format(result1) +" "+  UnitofMeasurement);
            }
            else
                {
                    System.out.println("Please only enter feet/inches");

                }
            enter();
            break;

по умолчанию;

1 Ответ

0 голосов
/ 04 сентября 2018

Если это весь код, который вы пишете, ваши ошибки компиляции будут в enter(); и default;

Я думаю, вам нужно реализовать метод enter() в вашем классе и изменить последнюю ошибку на default:

См. Этот код ниже, без ошибок компиляции:

public class geo {
    public static void main(String[] args) {
        byte choice = 0;
        int num1 = 0;
        int num2 = 0;
        int num3 = 0;
        float num4;
        double result1 = 0;
        boolean quit;
        String UnitofMeasurement;
        String feet = "feet";
        String inches = "inches";
        DecimalFormat format = new DecimalFormat("0.00");
        Scanner key = new Scanner(System.in);
        while (choice != 1) {
            System.out.println("\t1. Determine the perimeter of a square");
            switch (choice) {
            case 1:
                System.out.println("The perimeter of a square is computed by multiplying the measure of one side by 4.");
                System.out.println("Enter the unit of measurement(i.e. inches/feet):");
                UnitofMeasurement = key.next();// gets the unit of measurement
                if (UnitofMeasurement.equals(feet) || UnitofMeasurement.equals(inches)) {
                    System.out.println("You have chosen " + UnitofMeasurement + " as the unit of measurement.");
                    System.out.println("Enter the measurement of one side: ");
                    num1 = key.nextInt();
                    System.out.println("Side of the square: " + format.format(num1));
                    key.nextLine();
                    result1 = num1 * 4;
                    System.out.println("Perimeter of the square = " + format.format(result1) + " " + UnitofMeasurement);
                } else {
                    System.out.println("Please only enter feet/inches");

                }
                break;
            default:
            }
        }
    }
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...