簡體   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