程序不会终止 - Java

时间:2014-11-01 03:19:48

标签: java

我尝试在我的程序中使用if else语句进行菜单选择。每当我输入退出应用程序的号码时,应用程序仍会运行。我不知道应该怎么做才能解决这个问题,但是我们将非常感谢任何帮助。提前谢谢。

import java.util.Scanner;

  public class Gradebook {

    public static void main(String[] args ){

        Scanner input = new Scanner(System.in);

        System.out.println("(1) Average grades for a new student");
        System.out.println("(2) Quit");
        int selection = input.nextInt();

        if( selection == 1) {
            System.out.println("Grades will be put in accordingly: \n Homework \n Quizzes \n Tests");
            System.out.println("Once all grades have been put in, type -1 to continue");
            String name = input.next();
        }
        else{
            System.out.println("Goodbye.");
        }

        int total = 0;
        int counter = 0;


        System.out.println("Please enter numeric homework grade or \"-1\" to quit: ");
        int grade = input.nextInt();

        while( grade != -1) {
            total = total + grade;
            counter = counter + 1;
        grade= input.nextInt();
        }

        if (counter > 0) {
                double average = total / (double)counter;
                System.out.println("The average for Homework is: " + average);
        }
        else
                System.out.println("No grades were entered."); 

        System.out.println("Please enter numeric Quiz grade or \"-1\" to quit: ");

        while( grade != -1) {
            total = total + grade;
            counter = counter + 1;
        grade = input.nextInt();
        }

        if(counter > 0) {
            double average = total / (double)counter;
            System.out.println("The average for Quizzes is: " + average);
        }
        else
                System.out.println("No grades were entered.");

                System.out.println("Please enter numeric Test grade or \"-1\" to quit: ");

            while(grade != -1) {
                total = total + grade;
                counter = counter + 1;
            grade = input.nextInt();
            }

            if(counter > 0) {
                double average = total / (double)counter;
                System.out.println("The average for Tests is: " + average);
            }
            else
                    System.out.println("No grades were entered.");

    }

}

2 个答案:

答案 0 :(得分:4)

我假设这是应该退出的代码:

    else{
        System.out.println("Goodbye.");
    }

打印"再见"但是,不退出应用程序。试试这个:

    else{
        System.out.println("Goodbye.");
        System.exit(0); // causes the application to end right here
    }

或:

    else{
        System.out.println("Goodbye.");
        return; // returns from the main function
    }

答案 1 :(得分:0)

有两种方法可以执行此操作:更改if语句以包含return,或将if语句更改为包含System.exit(0)

使用return

    if( selection == 1) {
        System.out.println("Grades will be put in accordingly: \n Homework \n Quizzes \n Tests");
        System.out.println("Once all grades have been put in, type -1 to continue");
        String name = input.next();
    }
    else{
        System.out.println("Goodbye.");
        return;
    }

使用System.exit

    if( selection == 1) {
        System.out.println("Grades will be put in accordingly: \n Homework \n Quizzes \n Tests");
        System.out.println("Once all grades have been put in, type -1 to continue");
        String name = input.next();
    }
    else{
        System.out.println("Goodbye.");
        System.exit(0);
    }