簡體   English   中英

Java關於循環(循環)的幫助

[英]Java help regarding looping (do loops)

我正在嘗試制作一個非常基本的游戲,您在其中使用do循環猜測數字介於1-1000之間。 一切正常,除非當我最終做出正確的猜測時,仍然提示我進行另一個猜測,並且當我再次輸入相同的正確猜測時,程序會像預期的那樣終止。

為什么我必須做出額外的猜測才能最終使我的程序正常工作? 我是否需要額外的時間? 另外,如果我做出正確的猜測(編譯器會說我是正確的,但仍會提示我),然后是錯誤的猜測(編譯器會告訴我我是錯誤的),然后再次進行正確的猜測,則程序將在我第二次做出正確的猜測。

底部的第二個do循環是我在main方法中輸入的內容。 上面的所有內容都是在我編寫的一種名為play的方法中。

public static boolean play()
{

    boolean c;
    int n = 0;

    do {
        String input = JOptionPane.showInputDialog("Enter a number between 1-1000");
        n = Integer.parseInt(input);

        if (n == guess)
        {
            System.out.println("Correct");
            c = true;
        }
        else if (n < guess)
        {
            System.out.println("Not Right");
            c = false;
        }
        else
        {
            System.out.println("Not Right");
            c = false;
        }

        guess++;

    } while (c == false);

    return c;

}

在主要方法中:

    do {
        game1.play();
    } while (game1.play() != true);

該循環在循環的每次迭代中兩次運行play方法:

do {
    game1.play(); // first call
} while (game1.play()!=true); // second call

您沒有測試第一次調用返回的值,因此,即使它返回true,您仍然會再次調用game1.play() ,它將再次顯示“輸入介於1-1000之間的數字”。

替換為:

boolean done = false;
do {
    done = game1.play();
} while (!done);

在循環的每次迭代中,這只會調用一次play()

也就是說,我不確定為什么需要外部循環。 您可以只用一次調用game1.play()game1.play() ,因為game1.play()會一直循環直到輸入正確的數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM