[英]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
。
您在代碼中遇到兩個問題:
我的代碼將是這樣的:
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.