Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,while循环,计数器不退出循环_Java_While Loop_Counter - Fatal编程技术网

Java,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

我基本上是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();
    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语句有任何错误。