>>467
使い勝手がいいから

fn main() {
 if true { 1 } else { 0 }
 ()
}

↑この`if true { 1 } else { 0 }`に意味ないでしょ?
意味持たせるには`let foo = if true { 1 } else { 0 };`みたいに評価結果の値を何かしら使う形にする必要がある
意味がないけどセミコロンで式文にして「値を無視します」と表明すればエラーにはしない
表明がなければ「お前意味ないことやってるぞ」とエラーにしてくれる

`if condition { println!(“1”) } else { println!(“0”) }`みたいに()に評価されるif式は
副作用を起こしたいケースなので評価結果の値を何かしら使う形じゃなくても意味がある
この使い方の時にセミコロンを必須にすると他言語習得者にとってはめちゃくちゃ使い勝手が悪い

知ってれば役に立つことはあっても普段コードを書く時に意識する必要のないルール