while循环在每次迭代后不更新i

时间:2013-06-25 06:18:28

标签: java loops while-loop

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

不确定是什么问题,但是如果我打印出来,它只会保持在1.我需要这样做以便停止打印:(

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

你需要把

int i = 0; 

以上

    while (var<10)  
        {

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

答案 2 :(得分:0)

您正在每次迭代中初始化我。

int i = 0;
在循环之前,

必须在循环体之外。放

也是有意义的
String line = keyboard.nextLine();
循环体外的

也是如此。 'line'也不需要在每次迭代中初始化。

答案 3 :(得分:0)

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

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