2016-04-04 32 views
0

我的程序基本上允许用户输入存储在成绩簿(数组)中的成绩(要素)。用户还可以选择更改成绩簿(数组)中的成绩(元素)。JAVA Reorganizing在考虑用户输入时在数组中循环。

我的问题是,一旦while循环回路,用户会被要求“让更多的变化?输入是或否”如果我输入yes,那么用户要求改变其等级,被允许更换等级,并修改成绩簿打印。但是,如果我输入“否”,只是打印成绩簿。有什么方法可以让节目打印“再见!” (表示程序结束),如果用户输入否?我相信我应该重新组织我的代码,并设置一个while循环boolean = false?但我不知道如何开始...

任何帮助将不胜感激。谢谢。

System.out.println("Make changes? Enter Yes or No"); 
    String makeChanges = input.next(); 



    if (makeChanges.equals("no")) { 

     System.out.println("Good bye!"); 
    } 


    while (makeChanges.equalsIgnoreCase("Yes")) { 
     // Ask user if what grade they would like to change 

     //int index = NumberReader.readPositiveInt(input, "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input", index); 

     int index = NumberReader.readCappedPositiveInt(input, "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input", numOfGrades); 

     System.out.println("Enter grade (limit to two decimal places)" + ": "); 
     // offset the index by one 
     mogrades[index - 1] = NumberReader.readPositiveDouble(input, "Enter grade " + index + " :", 
       "Invalid data entered"); 

     System.out.println("The Grade book contains: "); 

     printArray(mogrades); 

     System.out.println("Make more changes? Enter Yes or No"); 

     makeChanges = input.next(); 

     System.out.println(makeChanges); 

     System.out.println("The Grade book contains: "); 

     printArray(mogrades); 
    } 
} 

回答

0

Break语句用于退出循环。如果你想退出整个程序,使用System.exit

if (makeChanges.equalsIgnoreCase("No")) { 
    System.out.println("Good Bye!"); 
    break; 
} 

(0);:你可以在while循环试试这个

if (makeChanges.equalsIgnoreCase("No")) { 
    System.out.println("Good Bye!"); 
    System.exit(0); 
} 

下面是一个简单的程序演示如何这会工作:

import java.util.Scanner; 

public class Simple { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     String makeChanges = "Yes"; 

     while (makeChanges.equalsIgnoreCase("Yes")) { 
      System.out.println("Make more changes? Enter Yes or No:"); 
      makeChanges = input.next(); 
      if (makeChanges.equalsIgnoreCase("No")) { 
       System.out.println("Good Bye!"); 
       System.exit(0); 
      } 
     } 
    } 
} 

这里是在命令行输出:

[email protected]:StackOverflow上$ javac的Simple.java

[email protected]:StackOverflow $ java简单

进行更多更改S'输入是或否:

做出更多的更改吗?输入是或否:

做出更多的更改吗?输入是或否:

再见!

+0

它确实退出程序。但是,它没有阅读“再见!”信息。在makeChanges = input.next()后,我将它放在while循环中。 – Coco

+0

您可以重新发布您的更改,以便我可以看到新的代码?它应该显示“Good Bye!”,如果您复制并粘贴了我在上面输入的代码,请退出。 –

+0

难道你不能只用'return;'退出程序吗? –