C に似た言語では、次のような if ステートメントを使用することに慣れています。
if(x == 5) {
//do something
}
else if(x == 7) {
//do something else
}
else if(x == 9) {
//do something else
} else {
//do something else
}
私の質問は、コンパイラは if ステートメントをそのように認識しますか、それとも最終的に次のように解釈されますか?
if(x == 5) {
//do something
}
else {
if(x == 7) {
//do something
}
else {
if(x == 9) {
//do something
}
else {
//do something else
}
}
}
編集: 質問は私の頭の中では理にかなっていますが、一般大衆にはおそらくかなりばかげているように聞こえることに気付きました. 私は、ASTがどのように見えるか、そして「else-if」ステートメントに特別なASTケースがあるかどうか、またはカスケードif/elseブロックとしてコンパイルされるかどうかについてもっと言及していました.