2015-10-07 53 views
1
import java.util.Scanner; 

public class MyFirstGame { 

    public static void main(String[] args) { 

     Scanner scanner = new Scanner(System.in); 

     System.out.println("Please Enter A Number: "); 
     double s = scanner.nextDouble(); 
     double randomNumber = Math.random(); 
     double realNumber = randomNumber*10; 
     double realerNumber = Math.round(realNumber); 
     System.out.println(realerNumber); 

     if(s==realerNumber) { 
      System.out.println("You Win!"); 
     } else { 
      System.out.println("Try Again..."); 
     } 
    } 
} 

所以我想要做的是爲我的Java類做一個「遊戲」。我生成了一個介於1到10之間的隨機數字,用戶必須輸入一個數字,如果輸入和隨機數字相同,他們就會「贏」。如果他們輸了,他們再試一次......?首先,我做了所有我不甚瞭解的必要掃描儀。我剛剛複製了教授。所以程序說輸入一個數字,程序生成一個介於0.0和1.0之間的數字。我把這個數字乘以10來使它在1到10之間。然後我把數字四捨五入到最接近的整數。如果輸入符合這個數字,程序會說你贏了。如果沒有,它會說再試一次。如何根據特定情況重複我的程序?

問題是如何讓程序重複自己,而用戶不必用cmd重新啓動程序?我需要重複輸入,隨機數發生器,然後結果。我需要做什麼?另外,我的程序如何?我的第二個大個子......是的,對...很大。但是,嚴肅地說,我怎麼能讓它變得不那麼複雜或者什麼來改善它。謝謝。

+0

使用while循環 – pelumi

回答

2

使用while循環:

long realerNumber = Math.round(realNumber); 
// first guess 
long guess = scanner.nextLong(); 
while (guess != realerNumber) { 
    System.out.println("Try Again..."); 
    // guess again 
    guess = scanner.nextInt(); 
} 

System.out.println("You Win!"); 

已經有一個class生成隨機數,你可以使用它:

// TODO: move to constant 
int MAX = 10; 
// nextInt(int n) generates a number in the range [0, n) 
int randomNumber = new Random().nextInt(MAX + 1) 
+0

感謝提到的想法。我不得不在while語句區域添加更多的東西,但是你讓我開始了。我得到了我想要的最終結果,並且我很滿意。 –

1

只是把你的代碼內do-while循環

Scanner scanner = new Scanner(System.in); 

do 
{ 
    System.out.println("Please Enter A Number: "); 
    double s = scanner.nextDouble(); 

    double realerNumber = Math.round(Math.random() * 10); 

    System.out.println(realerNumber); 

    if(s==realerNumber) { 
     System.out.println("You Win!"); 
    } else { 
     System.out.println("Try Again..."); 
    } 
} 
while(someCondition); 

someCondition例如可以是一個計數器(如果你想玩n次只是設置計數器n並減少它的每個循環迭代,然後檢查它是否爲0)while或某些函數檢查是否按鍵(如逃生

int n = 5; 

do 
{ 
    n--; 
    ... 
} 
while(n > 0); 
-1

,這將永遠運行,但它在第一個註釋

... 
    Scanner scanner = new Scanner(System.in); 
    while(true){ // add this after Scanner ... declaration 
     ... 
     } // end of existing else block 
    } // end of while loop, so add this single brace 
    ... 
+0

爲什麼不'while(true)'? :-) –

+1

當然。好主意。 – DSlomer64

+0

你在開玩笑嗎? -1?吉茲。 – DSlomer64

相關問題