2017-02-09 38 views
0

我只是在做一些非常簡單的事情來檢查隨機數是否超過9999,因爲我試圖在0 - 9999之間進行隨機返回,所以我有一個for循環做了一個簡單的測試來運行,但以某種方式即使數字不是9999,它仍然會進入我的if語句和數字控制檯。爲什麼這個if語句在我的腳本中遇到? JS

這是什麼我在這裏失蹤?

function setHiddenFields() { 
    let answer = Math.floor((Math.random() * 10000) + 1); 
    // console.log(typeof answer); 
    return answer; 
} 

for (let i = 0; i < 9999; i++){ 
    if(setHiddenFields() > 9999){ 
     console.log(setHiddenFields()); // returns 4389 
    } 
} 

它是隨機的,有時它顯示8167張或只是隨機數的不大於9999,仍然console.log數...

+3

你叫你的循環中的'setHiddenFields' 2次,他們並不需要返回相同的值。這就是爲什麼你的if語句不起作用。 – tsh

+2

如果你想在[0,9999]中使用隨機數,你應該使用'Math.floor(Math.random()* 10000)',並且不應該加上一個 – tsh

回答

1

你犯了一個拉多姆的兩倍,一個用於if語句,然後又上輸出。 那怎麼你的代碼運行:

for (let i = 0; i < 9999; i++){ 
    if((Math.floor((Math.random() * 10000) + 1))> 9999){ 
     console.log(Math.floor((Math.random() * 10000) + 1)); 
    } 
} 

這就是你居然什麼什麼:

for (let i = 0; i < 9999; i++){ 
    var output=Math.floor((Math.random() * 10000)) + 1; 
    if(output> 9999){ 
     console.log(output); 
    } 
} 
+0

OMG我怎麼能錯過那個點!這很尷尬,通常我會給它分配一個變量哦,我的thx thx指出它 – Tsuna

1

。結果存儲在可變第一。

for (let i = 0; i < 9999; i++){ 
     var result = setHiddenFields(); 
     if(result > 9999){ 
      console.log(result); 
     } 
    }