考虑用户输入时,JAVA在数组中重新组织While循环。

考虑用户输入时,JAVA在数组中重新组织While循环。,java,arrays,while-loop,boolean,Java,Arrays,While Loop,Boolean,我的程序基本上允许用户输入存储在成绩册(数组)中的成绩(元素)。用户还可以选择更改成绩册(数组)中的成绩(元素) 我的问题是,一旦while循环循环,用户被要求“进行更多更改?输入是或否”如果我输入是,则用户要求更改哪个年级,允许替换该年级,并打印修改后的成绩册。但是,如果我输入“否”,则只打印成绩册。如果用户输入no,是否有办法让程序打印“再见!”(表示程序结束)?我相信我应该重新组织我的代码,并用boolean=false设置while循环?但我不知道如何开始 任何帮助都将不胜感激。多谢各位

我的程序基本上允许用户输入存储在成绩册(数组)中的成绩(元素)。用户还可以选择更改成绩册(数组)中的成绩(元素)

我的问题是,一旦while循环循环,用户被要求“进行更多更改?输入是或否”如果我输入是,则用户要求更改哪个年级,允许替换该年级,并打印修改后的成绩册。但是,如果我输入“否”,则只打印成绩册。如果用户输入no,是否有办法让程序打印“再见!”(表示程序结束)?我相信我应该重新组织我的代码,并用boolean=false设置while循环?但我不知道如何开始

任何帮助都将不胜感激。多谢各位

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

Break语句用于退出循环。您可以在while循环中尝试以下操作:

if (makeChanges.equalsIgnoreCase("No")) {
    System.out.println("Good Bye!");
    break;
}
如果要退出整个程序,请使用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);
            }
        }
    }
}
下面是命令行的输出:

daniel@4.3:StackOverflow$javac Simple.java

daniel@4.3:StackOverflow$java Simple

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

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

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

没有


再见

它确实退出了程序。然而,它并没有读到“再见”的信息。在makeChanges=input.next()之后,我确实将它放在了while循环中;你能重新发布你的更改以便我能看到新代码吗?它应该显示“再见!”,如果你复制并粘贴了我在上面输入的代码,那么就退出。你不能也使用
return
退出程序?
返回也可以。我通常使用
System.exit(1)
退出程序,然后
返回退出方法。@Daniel.Schroeder-好的。我把它作为编辑添加到你的程序中。让我知道我是否应该张贴整个计划,如果这将提供更多的细节。
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);
            }
        }
    }
}