2014-10-20 42 views
0

試圖進一步我的循環理解,我發現一些問題在線,我試圖完成,但我被困在第二個最後一個。循環,隨機數發生器,然後檢查器

原始問題是:

loop4(int val)。此方法使用循環(for或while?)來執行以下操作。生成1到10之間的隨機數(包括1和10)10次,並計算val生成次數,然後打印出該數字。

我已經設法到目前爲止做:

public int Loop4(int val){ 
    for(int i = Math.random()*10; i<= 10; val!=0){ 
     if (i == val) { 
      System.out.println(//I cannot for the life of me think of how I could constantly increment a +1 to this value because I only want to end up with 1 number in the end) 
     } 
    } 
} 
+0

你卡在哪一部分? – 2014-10-20 19:40:03

+2

提示:您需要在循環外打印。你需要一個計數器變量。 – 2014-10-20 19:40:53

+1

val!= 0 - 這是做什麼的? – Victor2748 2014-10-20 19:42:09

回答

0

你可能想嘗試這樣的事情。從你的問題,你只想循環10次,並計算生成val的次數。您應該創建一個總變量並每次增加新的隨機數== val。

例:

public int Loop4(int val){ 
    int total = 0; 
    for(int i = 0; i <= 10; i++){ 
     if ((int)(Math.random()*10) == val) { 
      total++; 
     } 
    } 
    return total; 
} 
1

這段代碼就可以了:)

public int Loop4(int val){ 

     int totalCount = 0; 
     for(int i = 0; i<= 10; i++){ 
      int generatedNumber = (int)(Math.random()*10); 
      if (generatedNumber == val){ 
      totalCount++; 
      } 
     } 

     System.out.print(totalCount ); 

} 
+0

這將不會編譯確保將Math.random()* 10轉換爲(int)。 – brso05 2014-10-20 19:48:17

+0

感謝提及:) – Beri 2014-10-20 19:49:09

1

只需創建一個計數值並加一。

public int Loop4(int val){ 
    int count = 0; 
    for(int i = 0; i< 10; i++){ 
    if ((int)(Math.random()*10) == val) { 
     count++; 
    } 
    } 
    System.out.println(count); 
    return count; 
} 
+0

這將無法正常工作,請務必將Math.random()* 10轉換爲(int)。 – brso05 2014-10-20 19:45:58

+0

@ brso05謝謝,修正了它 – Grice 2014-10-20 19:46:54

0

在代碼中有幾件事情需要考慮。

首先,Math.random()返回double,不是int所以你必須將它轉換:(int) Math.random()(但鑄造,這將導致一些問題進行舍入,以便做一些研究)。

其次,for循環中的第三個參數需要是迭代,而不是比較。 例如:i++++i--i

三,創建另一個變量int count = 0將計次出現數和地點數量:count++你內心if語句裏面,然後讓System.out打印它的迭代後。

+0

我沒有Math.random返回一個double,但我只想要一個整數,所以除非我誤以爲它總是舍入到一個整數值,這正是我想要實現的。不需要雙倍 – thisissweetness 2014-10-20 19:51:36

+0

是的,它會一直向下,所以你需要做的就是投射它,如果這是所需的效果 – 2014-10-20 19:54:14