繁体   English   中英

Java,while循环,计数器不退出循环

[英]Java, while-loop, counter does not exit loop

我几乎是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(); 
}   

使用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));
}

我不知道您是否了解循环,这会创建一个名为i的int(就像您的zaehler一样),每次循环结束时它都会增加1。 此循环将继续直到int i达到4。

这将在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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM