簡體   English   中英

如何讀取兩個數字之間的數字?

[英]How can I read a number in between 2 numbers?

我對Java相當陌生,我正在嘗試編寫一個小程序,要求用戶輸入0-4之間的整數。 到目前為止,我已經寫了這篇文章,但是似乎沒有用! 誰能告訴我我哪里錯了?

import java.util.Scanner;
public class GameCharSelect {

    public static void main(String[] argh){
        int myChar;
        Scanner in = new Scanner(System.in);
        {
            System.out.print("choose a player: ");
            myChar = in.nextInt();
        }while(myChar>0 && myChar<4);

        System.out.println("--------");
        System.out.println("you chose "+ myChar);

    }

}

現在,我希望該數字為1,2或3,否則它將一直循環播放直到用戶輸入其中一個,但程序此時接受任何數字。 我哪里錯了?

您在循環中缺少do關鍵字。 另外,您的條件也應被撤銷:

public static void main(String[] argh) {
    int myChar;
    Scanner in = new Scanner(System.in);
    do {
        System.out.print("choose a player: ");
        myChar = in.nextInt();
    } while (myChar <= 0 || myChar >= 4);

    System.out.println("--------");
    System.out.println("you chose " + myChar);

}

您的while條件不正確。
要檢查,如果char比0大於4 更低的,如果是,它會再次進行循環,當你以后有什么是oposite。
更改語句來檢查,如果myChar大於1小於3 更高。
myChar < 1 || myChar > 3

do-while的開頭,您還缺少一個do

您在代碼中遇到兩個問題:

  • 您以錯誤的方式放置了while,您應該在{...}之前放置一個do-while語句。
  • 您還希望在輸入錯誤的數字(<1或> 3)時運行循環,而不是在輸入正確的數字(1至3之間)時運行循環。因此,您還需要更改表達式。

我的代碼將是這樣的:

import java.util.Scanner;
public class GameCharSelect {

    public static void main(String[] argh){
        int myChar;
        Scanner in = new Scanner(System.in);
        do{
            System.out.print("choose a player: ");
            myChar = in.nextInt();
        } while(myChar<1 || myChar>3);

        System.out.println("--------");
        System.out.println("you chose "+ myChar);

    }

}

您的循環應如下所示

while (true) {
    System.out.print("Choose a player: ");
    myChar = in.nextInt();
    if (myChar > 0 && myChar < 4) {
        break; // out of the loop
    }
}

那是你唯一的break; 如果掃描的值是1、2或3,則超出此范圍。


@ Ali, while(true)方法非常好。 實際上,在實際代碼中看到它們比在do-while()中見得多。 收到的否決票是主觀的,並且基於個人的編碼樣式偏好,而不是基於答案正確性的指示。

暫無
暫無

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

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