Java循环在第二次尝试后停止工作

Java循环在第二次尝试后停止工作,java,Java,我正在尝试制作一个控制台游戏(比如俄勒冈小径),我遇到了一个问题,但后来解决了 **这只是整个游戏代码的一部分 现在的问题是,第二次尝试后,循环不起作用;代码如下: int o1, o2, o3, o4, o5, o6, o7, o8, o9; boolean thugloop = false; System.out.println("Woah, you beat the thug; but now the thug is angry and he won't rest until he b

我正在尝试制作一个控制台游戏(比如俄勒冈小径),我遇到了一个问题,但后来解决了

**这只是整个游戏代码的一部分

现在的问题是,第二次尝试后,循环不起作用;代码如下:

 int o1, o2, o3, o4, o5, o6, o7, o8, o9;
boolean thugloop = false;
 System.out.println("Woah, you beat the thug; but now the thug is angry and he won't rest until he beats you.");
                Thread.sleep(1000);
                thugloop = true;
                  System.out.println("Pick your numbers again");
                while(thugloop = true){

                    o4=reader.nextInt();
                o5=reader.nextInt();
                o6=reader.nextInt();
                o7=reader.nextInt();
                o8=reader.nextInt();
                int sumhop2 = o4+o5+o6+o7+o8;
                  int angrythug= 3 + (int)(Math.random()*85); 

                  if(sumhop2>angrythug){
                      Thread.sleep(1000);
                      System.out.println("Woah, you are really good at this!");
                       System.out.println("But the thug is getting angrier. Put in 5 more numbers:");
                         o4=reader.nextInt();
                o5=reader.nextInt();
                o6=reader.nextInt();
                o7=reader.nextInt();
                o8=reader.nextInt();

      **sumhop2 = o5 + o5 + o7 + o8;
     angrythug= 3 + (int)(Math.random()*85);** 


                    }else if(sumhop2<angrythug){

                      //other code goes here.
           break;

                    }

                }
intO1、o2、o3、o4、o5、o6、o7、o8、o9;
布尔thugloop=false;
系统输出println(“哇,你打了那个暴徒;但现在暴徒很生气,他不会休息,直到他打了你。”);
睡眠(1000);
thugloop=true;
System.out.println(“再次选择您的号码”);
while(thugloop=true){
o4=reader.nextInt();
o5=reader.nextInt();
o6=reader.nextInt();
o7=reader.nextInt();
o8=reader.nextInt();
int sumhop2=o4+o5+o6+o7+o8;
int angrythug=3+(int)(Math.random()*85);
如果(sumhop2>愤怒暴徒){
睡眠(1000);
System.out.println(“哇,你真的很擅长这个!”;
“但是暴徒越来越生气了。再输入5个数字:”;
o4=reader.nextInt();
o5=reader.nextInt();
o6=reader.nextInt();
o7=reader.nextInt();
o8=reader.nextInt();
**sumhop2=o5+o5+o7+o8;
angrythug=3+(int)(Math.random()*85);**

}否则,如果(sumhop2一旦您再输入5个数字,您就到达循环的开始,这需要再输入5个数字。因此,光标会闪烁

在循环开始之前,也许应该请求前5个输入:

            o4=reader.nextInt();
            o5=reader.nextInt();
            o6=reader.nextInt();
            o7=reader.nextInt();
            o8=reader.nextInt();
            int sumhop2 = o4+o5+o6+o7+o8;
            int angrythug= 3 + (int)(Math.random()*85); 
            while(thugloop == true) {
                if(sumhop2>angrythug){
                     Thread.sleep(1000);
                     System.out.println("Woah, you are really good at this!");
                     System.out.println("But the thug is getting angrier. Put in 5 more numbers:");
                     o4=reader.nextInt();
                     o5=reader.nextInt();
                     o6=reader.nextInt();
                     o7=reader.nextInt();
                     o8=reader.nextInt();

                     sumhop2 = o5 + o5 + o7 + o8;
                     angrythug= 3 + (int)(Math.random()*85);
                     ...

之后,暴徒变得更加愤怒。再输入5个..
你在angrythug中接受5个值进行计算,然后if块退出,你返回while循环。因此,在if块中的5个输入值之后打印你的结果

编辑:或执行:

while(sumhop2 > angrythug){
Thread.sleep(1000);
System.out.println("Woah, you are really good at this!");
System.out.println("But the thug is getting angrier. Put in 5 more numbers:");
            o4=reader.nextInt();
            o5=reader.nextInt();
            o6=reader.nextInt();
            o7=reader.nextInt();
            o8=reader.nextInt();

  **sumhop2 = o5 + o5 + o7 + o8;
 angrythug= 3 + (int)(Math.random()*85);** 
}
// for sumhop2 < angrythug code goes here
while(sumhop2>angrythug){
睡眠(1000);
System.out.println(“哇,你真的很擅长这个!”;
“但是暴徒越来越生气了。再输入5个数字:”;
o4=reader.nextInt();
o5=reader.nextInt();
o6=reader.nextInt();
o7=reader.nextInt();
o8=reader.nextInt();
**sumhop2=o5+o5+o7+o8;
angrythug=3+(int)(Math.random()*85);**
}
//对于sumhop2,这里是愤怒的暴徒代码

//当angrythug大于sumhop2时,上面的循环将退出。请正确格式化您的代码。我很头痛,因为我试图找出块在这里结束。
while(thuglop=true)
应该是
while(thuglop)
(或者,不太推荐,
while(thuglop==true)
)@Keppil,我是这里的noob,我无法正确格式化;抱歉。@Aakarsh,因为在循环之外,您会得到第一次迭代的输入。然后,如果需要另一次迭代,您会得到更多输入(在if语句中)。您也可以将其保留在while循环中,并从if语句中删除
nextInt
行。重要的一点是,在while循环的每次迭代中,您只能从用户那里读取5个整数。非常感谢,您的答案非常棒。我正在制作这个游戏,我几乎完成了,但我遇到了另一个问题。我刚刚发布了它.这是个奇怪的问题