2014-11-01 136 views
-1

我试图在程序中使用if else语句作为菜单选择。每当我输入给定的数字以退出应用程序时,应用程序仍然运行。我不知道我应该怎么做才能解决这个问题,但任何帮助将不胜感激。提前致谢。程序不会终止 - Java

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."); 

    } 

} 
+0

尝试'System.exit(0);'退出。 – APerson 2014-11-01 03:21:27

回答

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 
    } 
+0

现在工作就像一个魅力。谢谢。 – 2014-11-01 03:26:21

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); 
    }