- ベストアンサー
Math.randomは0にはならない? 0になる
・意味が分からないコードがあるので教えてください ■コード for (var i = 0; i < 10; ++i) { switch ((Math.random() * 4) | 0) { case 0: hoge(); break; case 1: …… ■質問 ・これはどういう処理をするコードでしょうか? ・「Math.random … 0 以上1未満」ということは0にはならないのでしょうか? なぜ「 | 0」? ・breakした場合、switchは抜けるけど、for文は継続?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Math.random()は、 0 以上 1 未満 ということで、0 になることもあります。1にはなりません。 「 | 0 」は、0 と or でビット演算をするということですが、演算結果は整数となります。 Math.random()は、小数になるので、小数点以下を切り捨てるために、「 | 0」が付いているんですね。 breakは、switchのみを抜けます。breakが無いと、case 0の処理の後にcase 1の処理も実行してしまいます。
お礼
回答ありがとうございました。 >「 | 0 」は、0 と or でビット演算をするということですが、演算結果は整数となります ・初めて知りました ・勉強になりましたー