Как вызвать сообщение об ошибке при вводе отрицательного числа? - PullRequest
1 голос
/ 28 сентября 2019

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

package javatheatreseating;
import java.util.Scanner;


public class JavaTheatreSeating {
    public static final double PREMIUM_PRICE = 45.00;
    public static final double STANDARD_PRICE = 30.00;
    public static final double ECONOMY_PRICE = 21.00;
    public static final double TAX_RATE = 0.0825;
    public static final double SURCHARGE = 5.00;        

    public static void main(String[] args) {
        int premiumSeats;
        int standardSeats;
        int economySeats;
        double subTotal;
        double salesTax;
        double surCharge;
        double total;

        Scanner stdin = new Scanner(System.in);

    //INPUT: number of seats sold 

        System.out.print ("Enter the number of Premium Seats Sold:  ");
        premiumSeats = stdin.nextInt(); 
        System.out.print ("Enter the number of Standard Seats Sold: ");
        standardSeats =  stdin.nextInt();
        System.out.print ("Enter the number of Economy Seats Sold: ");
        economySeats = stdin.nextInt(); 


    //PROCESS: i calculate the total and add the percent of tax based on the seats added
    subTotal = premiumSeats * PREMIUM_PRICE + standardSeats * STANDARD_PRICE + economySeats * ECONOMY_PRICE;
    salesTax = TAX_RATE * subTotal;
    total = subTotal + salesTax + SURCHARGE; 


    //OUTPUT:
        System.out.println();
        System.out.println("Subtotal: " + subTotal);
        System.out.println("Tax: " + salesTax);
        System.out.println("surCharge: " + SURCHARGE);
        System.out.println("Total: " + total);


    }

}

1 Ответ

1 голос
/ 28 сентября 2019

поместите цикл while вокруг каждой переменной и продолжайте, пока пользователь не получит правильное значение.Я не проверял, если это компилируется, хотя.

while (true) {
    try {
        System.out.print ("Enter the number of Premium Seats Sold:  ");
        premiumSeats = stdin.nextInt();
        if (premiumSeats >= 0){
            break;
        } else {
            System.out.print ("Please Enter a positive integer.\n");
        }
    }
    catch (Exception e){
        System.out.print ("Please Enter a number.\n");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...