2016-05-01 43 views
-1
  int min = 651; 
      int max = 999; 
      Random r = new Random();  
      do { 
        final int i1 = r.nextInt(max - min + 1) + min; 
       } 
      while(i1 %10 == 0); 

我想在此(651至999)範圍內生成隨機數,但不希望如此以零或中間結束的660,670,680 (707,805)所以在這種情況下幫我 在這個代碼錯誤: - i1在while循環不是本地變量我想在android中生成隨機數,但排除一些以零結尾的部分

+0

也許你應該確定這是家庭作業,因爲這顯然是一個基本的編程問題。 – Jeremy

回答

1

你可以做如下。所有你需要做的是,循環,直到你通過10

int min = 651; 
int max = 999; 
Random r = new Random(); 
int randomNum;  
while(true){ 
    randomNum = rand.nextInt((max - min) + 1) + min; 
    if(randomNum%10!=0){ 
     break; 
    } 
} 
//now you have the required random number 

找到一個數字,是不能分開的什麼是錯在你的代碼

你有什麼所作所爲是正確的,除了訪問本地在其上下文之外的變量。你必須在while循環的上下文之外聲明i1。另外,請記住,最後的 int一旦分配就不能修改。在你的情況下,這不會影響,因爲它在while循環的上下文中。

int i1; //this should come here. 
do { 
    i1 = r.nextInt(max - min + 1) + min; // no final anymore 
} 
while(i1 %10 == 0); 
相關問題