| ■No91856 (えん さん) に返信 > これなら問題ないと思いますがどうでしょうか?
たとえば n = 8 であった場合: for (m = n; (mq = m >> 2) >= 1; m = mq) { // 処理 } は、「m=8, mq=2」の 1 回しか処理されません。
しかしながら、 Dim m As Integer = n Dim mq As Integer = m \ 4 For g As Integer = 1 To CInt(Math.Log(n, 4)) ' 処理 m = mq mq = m \ 4 Next g にすると、「m=8, mq=2」の後に「m=2, mq=0」で合計 2 回処理されてしまいますね。 |