1
    while (var<10)  
        {

        String line=keyboard.nextLine();
        input = line.charAt(0);

        game.makeGuess(input);
        game.getDisguisedWord();
        game.isFound();
        System.out.println(game.getDisguisedWord());
        System.out.println(game);
        System.out.println(game.getWrong());
        int i=0;
        i++;
        if (var<i+game.getDisguisedWord().length()-1)
            System.out.print("Guess #" + game.guessCount()+": ");
        var=game.getWrong();
        if (game.isFound())
            var=10;
    }

不知道出了什么问题,但是如果我打印出 i,它只会保持在 1。我需要这样做才能让某些东西停止打印:(

4

4 回答 4

2

int i=0是错误。它在每次迭代中将 i 初始化为 0,因此您的 i 值在i++下一步之后保持在 1。要仅初始化一次,请将其放在 while 循环之外。

于 2013-06-25T06:20:59.107 回答
0

您在每次迭代中初始化 i 。

int i = 0;

必须在循环体之外,在循环之前。这也是有意义的

String line = keyboard.nextLine();

在循环体之外也是如此。'line' 也不需要在每次迭代中初始化。

于 2013-06-25T06:20:17.993 回答
0

在您的代码中,i将被视为局部变量,并且每次循环完成一次迭代时,i都会被销毁。

在下一次迭代中,i将由 0 创建和初始化。您需要在 while 循环之外初始化此变量。

于 2013-06-25T06:30:55.140 回答
0

你需要把

int i = 0; 

以上

    while (var<10)  
        {

这是因为您在每次循环时调用“i”变量,然后使用 i++,它将始终为“1”。因此不会将其保存到下一个循环。

于 2013-06-25T06:21:44.063 回答