次の Java プログラムのデバッグに助けが必要です。
import java.util.Random;
public class NextInt
{
public static void main(String[] args)
{
for(int i=0; i<20; ++i)
{
if(i>0)
System.out.print(", ");
int x = (new Random()).nextInt();
System.out.print( x % 2 + 1);
}
System.out.println("");
}
}
出力します(例):
0, 1, 0, 1, 2, 2, 2, 0, 0, 1, 1, 1, 2, 0, 1, 1, 1, 1, 2, 1
出力には 1 と 2 だけが含まれているはずだったと思います。解釈について考えるとx % (2+1)
、出力は正しいです。モジュロ演算子は足し算より本当に弱いですか? Javaチュートリアルはノーと言います。それとも、私が見逃しているものがありますか?