2016-04-22 17 views
-2

これはループが?私はdowhileループが真になるまで、それはコンピュータのparseInt毎回を作るためのparseIntで私のコードは、非効率的な方法だと思いながら、DOでのInt に文字列を変換するための最良の方法ですこれはparseIntの効率的な方法ですか?

function randomUpper(upper) { 
    return Math.floor(Math.random() * upper) + 1 
} 

var limit = 10; 
var guess; 
var randomNumber = randomUpper(limit); 
var guessMade = 0; 

do{ 
    guess = prompt("Guess the number"); 
    guess = parseInt(guess); 
    guessMade++; 
} while (guess !== randomNumber); 

document.write(guessMade) 
+0

実際に「効率的」とはどういう意味ですか? – zerkms

+0

あなたはこれを明確にすることができます。したがって、 'var randomNumber = randomUpper(limit);ではなく' var randomNumber = '' + randomUpper(limit); '文字列の比較はかなり速くなければなりません。私はイムは、文字列たびにIループを解析するためのコンピュータが難しい作品だと思うので –

+0

代わりにint型を毎回パースの、あなただけの文字列に 'randomNumber'を変換できる「dowhileループが真になるまで、それはコンピュータのparseInt毎回になるので、非効率的な方法」 – hargasinski

答えて

1

JavaScriptはそのような高水準言語であり、文字列から整数型の型変換のようなものは、言語にそれほど大きなストレスを与えません。

あなたはどちらのタイプの強制を避けることができません。文字列を整数と適切に比較するには、ある時点で同じ型(ゆるやかな比較)を行う必要があります。厳密な比較ではそれを比較しないため手動で変換する必要があります。

これは本当にあなたがprompt、ブラウザのウィンドウからのフィードバックをお待ちしており、ユーザの入力機能を使用している場合は特に、懸念すべきではありません。それは文字列から整数への変換よりずっと高価です。

関連する問題