【发布时间】:2020-10-23 16:37:55
【问题描述】:
每次输入数字 1、3、5 时都会出现无限循环,我不知道如何解决。这是一个使用数组的策划程序,其中使用钉子而不是数字。问题很可能出在 while 循环中,在该循环中进行了更改以使程序更加简洁。任何帮助都会很棒。
package New;
import java.util.Random;
import New.ArrayMethod2;
import TurtleGraphics.KeyboardReader;
public class Mastermind2 {
public static void main(String[] args) {
Mastermind2 object = new Mastermind2();KeyboardReader reader = new KeyboardReader();
int[] V = new int [3];
do {
System.out.println("Please choose your first number (1-5)");
V[0]=reader.readInt();
System.out.println("Please choose your second number (1-5)");
V[1]=reader.readInt();
System.out.println("Please choose your third number (1-5)");
V[2]=reader.readInt();
}while((V[0]>5)&&(V[1]>5)&&(V[2]>5));
object.CorrectVariables(V[0], V[1], V[2]);
}
public void CorrectVariables(int num1, int num2, int num3) {
Mastermind1 object = new Mastermind1();
int Cornum1, Cornum2, Cornum3;
Random generator = new Random();
Cornum1 = generator.nextInt(5)+1;
Cornum2 = generator.nextInt(5)+1;
Cornum3 = generator.nextInt(5)+1;
IFstatements(Cornum1, Cornum2, Cornum3, num1, num2, num3);
}
public void IFstatements(int Cornum1, int Cornum2, int Cornum3, int num1, int num2, int num3) {
Mastermind1 object = new Mastermind1();
do{
int Number=0, Color=0;
if(Cornum1==num1)
{
Number++;
Color++;
}
if(Cornum1==num2)
{
Color++;
}
if(Cornum1==num3)
{
Color++;
}
if(Cornum2==num2)
{
Number++;
Color++;
}
if(Cornum2==num1)
{
Color++;
}
if(Cornum2==num3)
{
Color++;
}
if(Cornum3==num3)
{
Number++;
Color++;
}
if(Cornum3==num1)
{
Color++;
}
if(Cornum3==num2)
{
Color++;
}
System.out.println("You have "+Number+" numbers correct and "+Color+" colors correct");
if((Cornum1!=num1)||(Cornum2!=num2)||(Cornum3!=num3));
{
Number=0;
Color=0;
}
}while((Cornum1!=num1)&&(Cornum2!=num2)&&(Cornum3!=num3));
System.out.println("Congrats you guessed the correct numbers");
}
}
打印出来:
【问题讨论】:
-
您的循环体不会更改
(Cornum1!=num1)&&(Cornum2!=num2)&&(Cornum3!=num3)条件中使用的 6 个参数变量中的任何一个,因此如果使用不等于开头的值调用该方法,您为什么会期望循环改变它? -
请将您的输出作为文本粘贴到问题中。作为图像,它太小而无法阅读。
-
一个建议:如果您更改程序,请跟踪更改,以便了解更改的工作原理。
标签: java infinite-loop