If you want it to be as fast as possible--which I am assuming is the case given the shift operation--then you should use a while loop:
var i = password.length()
while (i != 0) {
// some code
i >>>= 1
}
It's one of the few cases where Java is more compact than Scala given the same operation.
You could also use tail recursion:
final def passwordStuff(password: Password)(i: Int = password.length): Whatever = {
if (i != 0) {
// Some code
passwordStuff(password)(i >>> 1)
}
}
which will compile into something of the same speed as the while loop (in almost every case, anyway).