Nilai mana yang ditampilkan perulangan while?
Untuk setiap iterasi, tulis nilai mana yang dikeluarkan dan bandingkan dengan solusinya.
Kedua perulangan alert nilai yang sama, atau tidak?
-
Bentuk prefix
++i:let i = 0; while (++i < 5) alert( i ); -
Bentuk postfix
i++let i = 0; while (i++ < 5) alert( i );
Tugas mendemonstrasikan bagaimana bentuk postfix/prefix dapat menyebabkan hasil yang berbeda ketika digunakan dalam perbandingan
-
Dari 1 ke 4
let i = 0; while (++i < 5) alert( i );nilai pertama adalah
i = 1, karena++imenambah terlebih dahuluidan mengembalikan nilai baru. Jadi perbandingan pertama adalah1 < 5danalertmenampilkan1.lalu diikuti
2, 3, 4?????? nilainya muncul satu per satu. Perbandingan selalu menggunakan nilai yang ditambah, karna ada++sebelum variabel.Akhirnya,
i = 4bertambah menjadi5, perbandinganwhile(5 < 5)gagal, dan pengulangan berhenti. Jadi5tidak ditampilkan. -
Dari 1 ke 5
let i = 0; while (i++ < 5) alert( i );Lagi, nilai pertama adalah
i = 1. bentuk postfix darii++menambahidan kemudian mengembalikan nilai yang lama, jadi perbandingani++ < 5akan menggunakani = 0(berbeda dengan++i < 5).Namun panggilan
alertterpisah. ini adalah pernyataan lain yang berjalan setelah pertambahan dan perbandingan. Jadi ini mendapatkan nilai yang saat inii = 1.Lalu diikuti
2, 3, 4???Mari berhenti di
i = 4. bentuk prefix++iakan menaikannya dan menggunakan5di perbandingan. Tapi disini kita mempunyai bentuk postfixi++. jadi ini menambahimenjadi5, namun mengembalikan nilai yang lama. Karna perbandingan yang sebenarnya adalahwhile(4 < 5)??? benar, dan kontrol berlanjut kealert.Nilai
i = 5adalah yang terkahir, karena pada langkah berikutnyawhile(5 < 5)adalah salah.