While循环意外重复[Java]

时间:2018-06-20 01:05:29

标签: java while-loop

我目前正在看一本有关Java编程的书,我试图做一个自学问题,要求做一个程序,该程序计算您按空格键的次数,并且必须打“'”。停止while循环。但是,该循环似乎要循环3次,而不是要求每次输入一次密钥。这是代码

public class KeySelfTest {
public static void main(String args[]) throws java.io.IOException{
    char input;
    int space = 0;

    input = 'q';

    while (input != '.'){
        System.out.println("Enter a key");
        input = (char) System.in.read();
        if (input == ' '){
            space++;
        }
        else{
            System.out.println("Enter a period to stop");
        }

    }
    System.out.println("You used the spacebar key " + space + " times");    
}
}

我还想知道在实际循环之前可以用来初始化输入变量的方法,而不是将其默认设置为像q这样的随机字母。感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这实际上是使用do-while循环的完美时机。

do {
    input = System.in.read();
    ...
} while (input != '.');

答案 1 :(得分:1)

您可以在一个语句中进行赋值和测试,例如

char input;
int space = 0;

while ((input = (char) System.in.read()) != '.') {
    System.out.println("Enter a key");
    if (input == ' ') {
        space++;
    } else {
        System.out.println("Enter a period to stop");
    }
}
System.out.println("You used the spacebar key " + space + " times");