Saya baru mengenal C ++. Saya sering melihat pernyataan kondisional seperti di bawah ini:
if
statement_0;
else if
statement_1;
Pertanyaan:
Secara sintaksis , haruskah saya memperlakukan else if
sebagai kata kunci tunggal? Atau itu sebenarnya if
pernyataan bersarang di luar else
seperti di bawah ini?
if
statement_0;
else
if
statement_1;
c++
syntax
language-lawyer
pemodel
sumber
sumber
else if
elseif
danELIF
. Nyatanya hanya (?) Bahasa pemrograman Algol68 memungkinkan spasi dalam pengenal; bagus juga:PROC walk through tree ()
elseif
kunci ada di VB dan PHP.long double
Anda harus menulis seperti itu.longdouble
salah.Jawaban:
Kata kunci tersebut bukan satu kata kunci jika kita membuka draf C ++ bagian standar tabel
2.12
Kata Kunci4
daftar keduanyaif
danelse
secara terpisah dan tidak adaelse 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:The
if
dalamelse if
adalah pernyataan mengikutielse
istilah. Bagian itu juga mengatakan:dan memberikan contoh berikut:
Jadi bagaimana contoh Anda yang sedikit diperpanjang diuraikan?
akan diurai seperti ini:
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 ituelse if
tidak boleh menjadi satu kata kunci tetapi harus merupakan dua kata kunci yang terpisah .sumber
jeq
(if
|else if
),jne
(if
|else if
),jmp
(else
). Berdasarkan itu, saya akan mengatakan itu adalah kata kunci tunggal .. mungkin tidak secara sintaksis tetapi bijaksana.else if
, melainkanelsif
. Dalam bahasa tersebut,else if
benar-benar satu kata kunci. Namun, bahasa berbasis C umumnya tidak, seperti yang dinyatakan dalam jawaban ini.else
pernyataan terakhir . Saya akan menghargai ini juga.Secara sintaksis, ini bukan satu kata kunci; kata kunci tidak boleh berisi spasi. Secara logis, saat menulis daftar
else if
, mungkin lebih baik jika Anda melihatnya sebagai kata kunci tunggal, dan menulis:Kompiler secara harfiah melihat ini sebagai:
tetapi kedua bentuk tersebut menghasilkan hal yang sama, dan yang pertama jauh lebih mudah dibaca.
sumber
else
diikuti olehcompound-statement
. Setelahelse
, Ini mencaristatement
(yang mungkin sepertireturn;
atauf()
) ataucompound-statement
...Tidak, bukan.
Mereka adalah dua kata kunci dan, terlebih lagi, yang kedua "jika" adalah substatement "di dalam" ruang lingkup yang ditentukan oleh pernyataan "lain" yang pertama.
sumber
Anda dapat melihat cakupan dengan menggunakan kurung kurawal:
Dan biasanya diterapkan dengan dua kata kunci berbeda, satu jika dan satu lagi .
sumber
if-statement
diakhiri dengan opsionalelse-clause
. Anelse-clause
adalah salah satuelse code-block
atauelse if-statement
.code-block
termasuk kawat gigi wajib. Jadielse
kata kunci hanya dapat diikuti oleh{
atauif
.else { if ... }
".Seperti yang sudah dijawab, tidak. Itu adalah dua kata kunci. Ini dimulai dari dua pernyataan yang satu mengikuti satu sama lain. Untuk mencoba membuatnya lebih jelas, berikut adalah tata bahasa BNF yang berhubungan dengan
if
danelse
pernyataan dalam bahasa C ++.Perhatikan bahwa
statement
itu sendiri termasukselection-statement
. Jadi, kombinasi seperti:dimungkinkan dan valid menurut standar / semantik C ++.
Catatan: Tata bahasa C ++ diambil dari halaman ini .
sumber
else dan jika adalah dua kata kunci C ++ yang berbeda . Sebuah jika pernyataan dapat diikuti oleh opsional lain jika ... lain pernyataan. Sebuah jika pernyataan dapat memiliki nol atau lebih lain jika 's dan mereka harus datang sebelum yang lain .
Anda dapat menemukan sintaks dan contoh dalam tutorial pernyataan if ... else ini
sumber
Saya hanya ingin menambahkan sudut pandang saya pada semua penjelasan ini. Seperti yang saya lihat, jika Anda dapat menggunakan kata kunci ini secara terpisah, kata kunci tersebut harus DUA kata kunci. Mungkin Anda dapat melihat tata bahasa c ++, dari tautan ini di stackoverflow: Apakah ada tata bahasa C ++ standar?
Salam
sumber
Pernyataan if dapat diikuti dengan pernyataan opsional else if ... else, yang sangat berguna untuk menguji berbagai kondisi menggunakan pernyataan if ... else if tunggal.
Saat menggunakan pernyataan if, else if, else ada beberapa hal yang perlu diingat.
lihat jika ... tutorial pernyataan lain .
sumber
else if
seolah-olah itu adalah kata kunci, jadi tidak ada gunanya mendefinisikannya secara eksplisit.