How to do without system Exit Java program without exit? (from user input?)

This is my code I don't know how to exit the program with the return value Any ideas? This is the last step of my task

import java.util.Scanner;


public class CommissionCalculator {

    public static void main(String args[]) {
        // Initialize a Scanner to read input from the command line
        Scanner ItemSelect = new Scanner(system.in);
        double comp = 200.00;
        double item1 = 239.99;
        double item2 = 129.75;
        double item3 = 99.95;
        double item4 = 350.89;
        double comm = 0.09;
        int choice;


        /* Note that we'll be doing this at least once and most likely multiple times...
         * Prompt the user with a menu of the four items and their values (this information is included in the problem statement)
         */
        System.out.println("Item\tValue");
        System.out.println("1\t$239.99");
        System.out.println("2\t$129.75");
        System.out.println("3\t$99.95");
        System.out.println("4\t$350.89"); 
        /* Display the user's current compensation */
        System.out.printf("Current compensation: $%.2f",comp);


        /* 
         * Prompt and take input from the user (you may assume that they will only enter int values)
         * They'll enter an item number (1 - 4) to record its sale or 0 to exit
         * 
         * NOTE: THE U0SER DOES NOT ENTER PRICES DIRECTLY... THEY ENTER ITEM NUMBERS TO INDICATE WHAT WAS SOLD
         * NOTE: THE USER MAY ENTER THE SAME ITEM NUMBRER MULTIPLE TIMES
         * 
         * If the user provides invalid input (a value other than 0 - 4) display "ERROR: Invalid input!" and prompt them again
         */
        do
        {

            System.out.print("\nPlease select an item from the " +
                               "list above (or enter 0 to exit): ");
            choice = ItemSelect.nextInt();

            {   
                if (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 0)
                {
                    do
                      {
                        System.out.print("ERROR: Invalid Input!\n");
                        System.out.println("Item\tValue");
                        System.out.println("1\t$239.99");
                        System.out.println("2\t$129.75");
                        System.out.println("3\t$99.95");
                        System.out.println("4\t$350.89");
                        System.out.printf("Current compensation: $%.2f",comp);
                        System.out.print("\nPlease select an item from the " +
                                   "list above (or enter 0 to exit): ");
                        choice = ItemSelect.nextInt();
                        if (choice == 1)
                        {
                            comp += (comm * item1);
                            System.out.printf("Current compensation: $%.2f",comp);
                        }
                        if (choice == 2)
                        {
                            comp += (comm * item2);
                            System.out.printf("Current compensation: $%.2f",comp);
                        }
                        if (choice == 3)
                        {
                            comp += (comm * item3);
                            System.out.printf("Current compensation: $%.2f",comp);
                        }
                        if (choice == 4)
                        {
                            comp += (comm * item4);
                            System.out.printf("Current compensation: $%.2f",comp);
                        }
                        if (choice == 0)
                        {
                            System.out.printf("Total Earnings: $%.2f",comp);
                            System.exit(0); ///////
                        }

                      }while (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 0); 

                }
                else
                {
                    if (choice == 1)
                    {
                        comp += (comm * item1);
                        System.out.printf("Current compensation: $%.2f",comp);
                    }
                    if (choice == 2)
                    {
                        comp += (comm * item2);
                        System.out.printf("Current compensation: $%.2f",comp);
                    }
                    if (choice == 3)
                    {
                        comp += (comm * item3);
                        System.out.printf("Current compensation: $%.2f",comp);
                    }
                    if (choice == 4)
                    {
                        comp += (comm * item4);
                        System.out.printf("Current compensation: $%.2f",comp);
                    }
                    if (choice == 0)
                    {
                        System.out.printf("Total Earnings: $%.2f",comp);
                        System.exit(0);
                    }
                }

            }
        }while (choice != 0);

        /* After the user enters 0,display the salesperson's earnings in the format "Total earnings: $NNN.NN" and exit
         * For example,if the salesperson sold two item 3s this week the final output would be "Total earnings: $217.99"
         */
        if (choice == 0)
        {
            System.out.printf("Total Earnings: $%.2f",comp);
            System.exit(0);   ///////
        }
        ItemSelect.close();
        System.exit(0);    ///////
    }
}

Solution

As long as you do not need to return a custom exit code (except 0, which is returned by system. Exit (0)) and do not start a new thread, you can terminate the program by executing

return;

In your main () method Note that there is no return value, so you don't need to change the main () method from void to int

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>