Javaコンパイラまたはランタイム(または他の言語コンパイラ)は、分岐3が決して起こらないことを認識し、それを最適化するのに十分スマートですか? 私は多くの初心者開発者がこの種の「防御的プログラミング」を見てきましたが、この自重がバイトコードに残っているのではないかと思います。
import java.util.Random;
class Example
{
public static void main(String[] args) {
int x = new Random().nextInt() % 10;
if ( x < 5 )
{
System.out.println("Case 1");
}
else
if ( x >= 5 )
{
System.out.println("Case 2");
}
else
{
System.out.println("Case 3");
}
}
}
またはこのより鈍いケースでさえ
boolean bool = new Random().nextBoolean();
if ( bool )
{
System.out.println("Case 1");
}
else
if ( bool )
{
System.out.println("Case 2");
}