Kata kunci tersebut bukan satu kata kunci jika kita membuka draf C ++ bagian standar tabel 2.12
Kata Kunci4
daftar keduanya if
dan else
secara terpisah dan tidak ada else if
kata kunci. Kita dapat menemukan daftar kata kunci C ++ yang lebih mudah diakses dengan membuka bagian cppreferences pada kata kunci .
Tata bahasa di bagian ini 6.4
juga menjelaskan hal ini:
selection-statement:
if ( condition ) statement
if ( condition ) statement else statement
The if
dalam else if
adalah pernyataan mengikuti else
istilah. Bagian itu juga mengatakan:
[...] Substatement dalam pernyataan-pemilihan (setiap substatement, dalam
bentuk lain dari pernyataan if ) secara implisit mendefinisikan lingkup blok (3.3). Jika substatement dalam pernyataan-pemilihan adalah pernyataan tunggal dan bukan pernyataan-majemuk , hal itu seolah-olah ditulis ulang menjadi pernyataan-majemuk yang mengandung substatement asli.
dan memberikan contoh berikut:
if (x)
int i;
can be equivalently rewritten as
if (x) {
int i;
}
Jadi bagaimana contoh Anda yang sedikit diperpanjang diuraikan?
if
statement_0;
else
if
statement_1;
else
if
statement_2 ;
akan diurai seperti ini:
if
{
statement_0;
}
else
{
if
{
statement_1;
}
else
{
if
{
statement_2 ;
}
}
}
Catatan
Kita juga dapat menentukan bahwa else if
tidak bisa menjadi satu kata kunci dengan menyadari bahwa kata kunci adalah pengidentifikasi dan kita dapat melihat dari tata bahasa untuk pengenal dalam jawaban saya untuk Bisakah Anda memulai nama kelas dengan digit numerik? spasi tidak diperbolehkan dalam pengenal dan oleh karena itu else if
tidak boleh menjadi satu kata kunci tetapi harus merupakan dua kata kunci yang terpisah .
else if