为什么要一次又一次地打印?

时间:2015-12-02 08:39:47

标签: java for-loop

我无法弄清楚为什么我的代码会永远打印出来。我尝试了一个块(将显示我最初的位置),但我希望它在打印“帮助”后继续。我的代码如下。我认为这是for循环...但我没有太多关注它。

boolean yes = true;

while(yes) {
    if(str1.equalsIgnoreCase("Exit")) {
        System.exit(0);
    } else if (str1.equalsIgnoreCase("Help")) {
        for(int g = 0; g < 2; g++) {
        System.out.println("    Accepted commands:\n    exit\n  help\n  load [filename]\n   students\n  search [partial name]\n assignments\n   grades\n    student [student name]\n    assignment [assignment name]\n");
        }
        //I added the break here and it did print out once but I did not want it to end the program. With the break I did not need the for statement.

    } else if (str1.equalsIgnoreCase("Load")) {

    }

4 个答案:

答案 0 :(得分:3)

str1的值永远不会在循环内改变。也许您缺少一些从用户那里获得新输入的声明。

答案 1 :(得分:1)

首先关闭

boolean yes = true;

while(yes) {

您永远不会将yes设为假

其次

 if(str1.equalsIgnoreCase("Exit")) {
        System.exit(0);

str1永远不会在循环中设置,即使是"Exit"

也是如此

答案 2 :(得分:0)

yes设置为true,您从未在循环中更改它

答案 3 :(得分:0)

在循环中读取str1:

DataInputStream in = new DataInputStream(System.in);
str1=in.readLine();

   while(true) {
       str1=in.readLine();