Java,while循环,计数器不退出循环
我基本上是Java的初学者,我无法解决以下问题。我希望这段代码生成0-2之间的随机数(这很好),并将其添加到int A,B,C,D中,直到A+B+C+D之和达到4。我试图用一个计数器(称为“zaehler”)来解决这个问题。当计数器达到4时,while循环不会停止!我真的搞不懂-也许有人有什么建议?提前谢谢Java,while循环,计数器不退出循环,java,while-loop,counter,Java,While Loop,Counter,我基本上是Java的初学者,我无法解决以下问题。我希望这段代码生成0-2之间的随机数(这很好),并将其添加到int A,B,C,D中,直到A+B+C+D之和达到4。我试图用一个计数器(称为“zaehler”)来解决这个问题。当计数器达到4时,while循环不会停止!我真的搞不懂-也许有人有什么建议?提前谢谢 public void levelUp() { int zaehler = 0; Random randomGenerator = new Random(); in
public void levelUp()
{
int zaehler = 0;
Random randomGenerator = new Random();
int A = 0;
int B = 0;
int C = 0;
int D = 0;
while(zaehler <= 4)
{
int randomInt1 = randomGenerator.nextInt(3);
A += randomInt1;
zaehler = zaehler + randomInt1;
System.out.println("randomInt1 = " + randomInt1);
System.out.println("A = " + A);
System.out.println("Zaehler = " + zaehler);
int randomInt2 = randomGenerator.nextInt(3);
B += randomInt2;
zaehler = zaehler + randomInt2;
System.out.println("randomInt2 = " + randomInt2);
System.out.println("B = " + B);
System.out.println("Zaehler = " + zaehler);
int randomInt3 = randomGenerator.nextInt(3);
C += randomInt3;
zaehler = zaehler + randomInt3;
System.out.println("randomInt3 = " + randomInt3);
System.out.println("C = " + C);
System.out.println("Zaehler =" + zaehler);
int randomInt4 = randomGenerator.nextInt(3);
D += randomInt4;
zaehler = zaehler + randomInt4;
System.out.println("randomInt4 = " + randomInt4);
System.out.println("D = " + D);
System.out.println("Zaehler = " + zaehler);
}
}
public static void main (String [] args)
{
TestRandom test = new TestRandom();
test.levelUp();
}
public void levelUp()
{
int-zaehler=0;
Random randomGenerator=新的Random();
int A=0;
int B=0;
int C=0;
int D=0;
while(zaehler使用for循环。如果您想按照自己的意愿停止循环,那么由您自己控制比while更好
for (int i=0;i<=4;i++){
//Enter your loop here
//To create a random between 0 and 2:
int random= 0+(int)(Math.random()*2));
}
for(int i=0;i使用for循环。如果您想按自己的意愿停止循环,最好是自己控制
for (int i=0;i<=4;i++){
//Enter your loop here
//To create a random between 0 and 2:
int random= 0+(int)(Math.random()*2));
}
for(int i=0;i这将在4或5停止。如果您根本不想要5,那么您需要更新您的问题如何处理该场景
public void levelUp()
{
int zaehler = 0;
Random randomGenerator = new Random();
int A = 0;
int B = 0;
int C = 0;
int D = 0;
while (zaehler <= 4)
{
int randomInt1 = randomGenerator.nextInt(3);
A += randomInt1;
zaehler = zaehler + randomInt1;
if (zaehler >= 4)
break;
int randomInt2 = randomGenerator.nextInt(3);
B += randomInt2;
zaehler = zaehler + randomInt2;
if (zaehler >= 4)
break;
int randomInt3 = randomGenerator.nextInt(3);
C += randomInt3;
zaehler = zaehler + randomInt3;
if (zaehler >= 4)
break;
int randomInt4 = randomGenerator.nextInt(3);
D += randomInt4;
zaehler = zaehler + randomInt4;
if (zaehler >= 4)
break;
}
System.out.println("A = " + A);
System.out.println("B = " + B);
System.out.println("C = " + C);
System.out.println("D = " + D);
System.out.println(zaehler);
}
public void levelUp()
{
int-zaehler=0;
Random randomGenerator=新的Random();
int A=0;
int B=0;
int C=0;
int D=0;
while(zaehler=4)
打破
int randomInt2=randomGenerator.nextInt(3);
B+=随机数2;
扎勒=扎勒+随机数2;
如果(扎勒>=4)
打破
int randomInt3=randomGenerator.nextInt(3);
C+=randomInt3;
扎勒=扎勒+随机数3;
如果(扎勒>=4)
打破
int randomInt4=randomGenerator.nextInt(3);
D+=随机数4;
扎勒=扎勒+随机数4;
如果(扎勒>=4)
打破
}
System.out.println(“A=“+A”);
System.out.println(“B=“+B”);
System.out.println(“C=“+C”);
System.out.println(“D=“+D”);
系统输出打印(zaehler);
}
这将在4或5停止。如果您根本不想要5,则需要更新您的问题如何处理该场景
public void levelUp()
{
int zaehler = 0;
Random randomGenerator = new Random();
int A = 0;
int B = 0;
int C = 0;
int D = 0;
while (zaehler <= 4)
{
int randomInt1 = randomGenerator.nextInt(3);
A += randomInt1;
zaehler = zaehler + randomInt1;
if (zaehler >= 4)
break;
int randomInt2 = randomGenerator.nextInt(3);
B += randomInt2;
zaehler = zaehler + randomInt2;
if (zaehler >= 4)
break;
int randomInt3 = randomGenerator.nextInt(3);
C += randomInt3;
zaehler = zaehler + randomInt3;
if (zaehler >= 4)
break;
int randomInt4 = randomGenerator.nextInt(3);
D += randomInt4;
zaehler = zaehler + randomInt4;
if (zaehler >= 4)
break;
}
System.out.println("A = " + A);
System.out.println("B = " + B);
System.out.println("C = " + C);
System.out.println("D = " + D);
System.out.println(zaehler);
}
public void levelUp()
{
int-zaehler=0;
Random randomGenerator=新的Random();
int A=0;
int B=0;
int C=0;
int D=0;
while(zaehler=4)
打破
int randomInt2=randomGenerator.nextInt(3);
B+=随机数2;
扎勒=扎勒+随机数2;
如果(扎勒>=4)
打破
int randomInt3=randomGenerator.nextInt(3);
C+=randomInt3;
扎勒=扎勒+随机数3;
如果(扎勒>=4)
打破
int randomInt4=randomGenerator.nextInt(3);
D+=随机数4;
扎勒=扎勒+随机数4;
如果(扎勒>=4)
打破
}
System.out.println(“A=“+A”);
System.out.println(“B=“+B”);
System.out.println(“C=“+C”);
System.out.println(“D=“+D”);
系统输出打印(zaehler);
}
你有while(zaehler)“不停”是什么意思?您是否试图在达到4后立即退出循环?即,如果A
是2
而B
是2
您是否希望在不更改C
和D
的情况下退出循环?如果是,请使用中断。如果您是3,那么下一个随机数是2会发生什么情况?因此,您将是5。如何处理这种情况?你有while(zaehler)“不停”是什么意思?您是否试图在达到4后立即退出循环?即,如果A
是2
而B
是2
您是否希望在不更改C
和D
的情况下退出循环?如果是,请使用中断。如果您是3,那么下一个随机数是2会发生什么情况?因此,您将是5。如何处理这种情况?当A、B、C和D之和大于等于4时,他希望停止循环,这时代码必须工作,但在while循环中使用中断并不是一种好的做法。谢谢大家的建议!我尝试了John Pauls的解决方案,已经看起来好多了。现在的问题是,有时A、B、C、D之和仍然是5,而不是4。下面是一个例子n来自控制台的示例输出:randomInt1=2 A=2 Zaehler=2 randomInt2=0 B=0 Zaehler=2 randomInt3=1 C=1 Zaehler=3 randomInt4=2 D=2 Zaehler=5 FinalA=2 FinalB=0 FinalC=1 FinalD=2 5然后使用else{}最后,重复循环或显示另一个答案不要认为break语句有任何问题。他希望在A、B、C和D的总和大于等于4时停止循环,这时代码必须工作,但在while循环中使用break不是一个好的做法。感谢大家的建议!我尝试了John Pauls的解决方案,已经看起来好多了现在的问题是,有时A,B,C,D的和仍然是5而不是4。下面是控制台输出的示例:randomInt1=2 A=2 Zaehler=2 randomInt2=0 B=0 Zaehler=2 randomInt3=1 C=1 Zaehler=3 randomInt4=2 D=2 Zaehler=5 FinalA=2 FinalB=0 FinalC=1 FinalD=2 5然后使用一个else{}最后,重复循环或显示另一个答案不要认为break语句有任何错误。