循环用户输入时

时间:2013-11-05 17:32:29

标签: java loops while-loop

我在Java程序中使用while循环时遇到问题。我希望有一个循环,它有无限的输入,直到达到某个输入,作为一个例子,如果你运行程序,它看起来像这样 “输入一个字母”(用户输入b)“您当前的输入为B”“输入另一个字母”(用户输入c)“您当前的输入是BC”

我的循环:

while (myLock.open() == false) {

    System.out.println("Enter a letter: ");

    String inputString = myScan.nextLine();
    char inputTwo = inputString.charAt(0);
    String inputStringKeeper = inputStringKeeper + inputTwo;

    inputTwo = ' ';
    System.out.println(myLock.setValue(inputStringKeeper) + " your current combo is " + inputStringKeeper);
}

只是FYI myLock方法是一种在达到某个输入时解锁“挂锁”的方法,并且会说“已解锁”或“仍然锁定” 抱歉这个混乱的帖子,很难解释文字。谢谢!

2 个答案:

答案 0 :(得分:2)

您需要在循环外移动inputStringKeeper的声明。

答案 1 :(得分:0)

跟踪您定义的变量的范围。在这种情况下,inputStringKeeper与当前迭代一样长,这意味着未来的迭代将具有自己的inputStringKeeper(因为您每次都创建一个新的)。

如果你想为while迭代的所有特定步骤设置一个公共变量,可以在块之外定义它并在里面使用它。


不相关,但我不妨指出一些事情。而不是使用myLock.open() == false,而是使用一元(逻辑)运算符而不是!):

while(!myLock.isOpen())

它也是如此,但它更容易阅读。

其次,每次连接值时,使用StringBuilder避免在池中创建和存储新的String是一个很好的方案。

StringBuilder inputStringKeeper = new StringBuilder();

然后,使用append功能。这将为您处理串联。最后使用good'ol toString从构建器中获取String


您可能感兴趣的一些观念: