Halo dan selamat datang. Dalam kuliah ini, saya ingin berbicara tentang perulangan while dan do while.
Kami telah berbicara tentang for loop, yang pada dasarnya memungkinkan Anda untuk mengulang kode.
Ada konstruksi lain di c yang disebut while dan do while yang melakukan hal yang sama
hanya dengan sintaks yang berbeda.
Jadi while loop loop while adalah mekanisme untuk mengulang satu
set pernyataan dan memungkinkan eksekusi untuk melanjutkan selama ekspresi logis yang ditentukan bernilai benar.
Jadi lebih sama di sini. Sama seperti jika pernyataan akan mengeksekusi
kode tertentu, sedangkan pernyataan akan mengeksekusi kode tertentu berdasarkan evaluasi Boolean beberapa kali.
Semua yang dapat Anda lakukan di loop for, dapat Anda lakukan di
loop while, hanya saja sintaksnya berbeda.
Jadi seperti apa perulangan while adalah seperti ini.
Pada tingkat yang sangat tinggi, jika kita melihat pseudocode,
sementara kondisi ini benar, terus lakukan ini.
Jadi untuk menghubungkannya dengan contoh dunia yang lebih dunia.
Pada dasarnya, saat Anda lapar, makan sandwich, sesuatu seperti itu.
Jadi Anda akan mengulang kode. Anda akan terus makan banyak sandwich saat Anda lapar.
Sintaks umum untuk perulangan while adalah sebagai berikut.
Dan ini menunjukkan kepada Anda sintaks untuk satu
pernyataan di badan, jadi Anda tidak perlu memberikan tanda kurung atau kurung kurawal.
Saya cenderung menggunakan istilah kurung kurawal dan tanda
kurung dalam terminologi yang sama.
Jadi, inilah tampilan sintaks ketika Anda memiliki satu pernyataan versus beberapa pernyataan.
Beberapa pernyataan, Anda harus memiliki tanda kurung itu,
satu pernyataan tidak, itu opsional. Anda tidak dapat memilikinya atau Anda tidak harus memilikinya.
Ekspresi masuk ke dalam tanda kurung seperti perulangan
for dan pernyataan if. Ekspresi di sini berbeda
dari perulangan for karena merupakan kondisi keluar tunggal.
Itu hanya ekspresi. Anda tidak menginisialisasi variabel kontrol loop.
Anda tidak mengubah variabel kontrol loop di antara tanda kurung.
Itu hanya ekspresi, hanya kondisi keluar.
Kondisi untuk kelanjutan dari while loop diuji di awal.
Jadi ini adalah puncak dari loop.
Jadi apa artinya ini adalah loop pretest. Dan apa artinya itu
bisa mengeksekusi 0 kali atau bisa mengeksekusi beberapa kali di dalam tubuh.
Dan sekali lagi, ini akan menjadi relevan karena perulangan do while melakukan sesuatu yang sedikit berbeda.
Jika ekspresi mulai salah, tidak ada pernyataan loop
di badan yang akan dieksekusi.
Jadi itu sebabnya itu di tes teratas.
Jadi jika Anda menjawab pertanyaan pertama tidak, saya tidak lapar, maka
Anda tidak akan pernah makan sandwich apa pun. Anda akan bergerak lurus pada kopi
atau baris kode berikutnya. Anda tidak akan memasuki tubuh loop.
Jika kondisi loop dimulai sebagai benar,
badan loop harus berisi mekanisme untuk mengubah ini
jika loop akan berakhir. Jika tidak, Anda akan memiliki loop tak terbatas.
Jadi dengan loop for di mana Anda memodifikasi variabel kontrol loop dalam satu pernyataan, itu adalah hal
yang sama di loop while kecuali Anda harus melakukannya di badan.
Loop while akan menginisialisasi
variabel kontrol loop di suatu tempat, dan kemudian
akan dimodifikasi di dalam isi kode.
Jadi seperti yang saya sebutkan, while loop dapat melakukan semua yang dilakukan for loop, hanya sintaks yang berbeda.
Dan lagi, for loop lebih pendek. Anda dapat melakukan semuanya dalam satu
baris sedangkan loop sementara Anda harus melakukan 3 hal tersebut pada baris yang terpisah.
Jadi dalam contoh ini,
kita memiliki int count sama dengan 0. Ini adalah variabel kontrol loop. Ini di luar pernyataan while loop.
Jika Anda menggunakan pernyataan for, ini akan masuk ke dalam for loop seperti sebelum titik koma pertama.
Di situlah menginisialisasi variabel kontrol loop.
Kemudian Anda memiliki kata kunci while dan Anda memiliki ekspresi Boolean di dalam tanda kurung.
Ini akan sama dengan for loop, pernyataan kedua
tepat sebelum titik koma kedua.
Jadi ini adalah apa yang Anda periksa benar atau salah. Dan jika itu benar atau salah, Anda memasuki tubuh loop.
Jika hitungan kurang dari sama dengan 5, maka Anda akan mencetak hitungan.
Baris kode berikutnya setelah itu sangat penting,
plus plus count karena itu memodifikasi variabel kontrol loop.
Anda harus melakukan ini plus plus count atau Anda tidak akan pernah keluar dari loop karena kondisi
di atas mengatakan jika hitungannya kurang dari sama dengan 5. Jika hitungan selalu sama dengan 1, Anda memiliki
loop tak terbatas.
Sehingga nilai plus plus itu sangat-sangat penting.
Plus plus count, ingat adalah operator penambahan.
Itu hanya mengatakan hitungan sama dengan hitungan ditambah 1.
Loop ini akan berjalan 5 kali.
Ini akan berjalan dengan hitungan sama dengan 1,
menghitung sama dengan 2, menghitung sama dengan 3, menghitung sama dengan 4 dan menghitung sama dengan 5.
Setelah hitungan sama dengan 6, itu akan melompat keluar dari loop dan
tidak akan keluar lagi pernyataan di tubuh.
Sekali lagi, Anda harus memikirkan perulangan for.
Hanya saja variabel kontrol loop dan modifikasi variabel kontrol
loop tidak ada dalam deklarasi loop yang sebenarnya.
Tidak semuanya dalam satu baris seperti di loop for.
Berikut contoh lain di mana logika dikontrol untuk mengakhiri loop.
Jadi dalam contoh pertama di sini yang saya tunjukkan, ini adalah loop kontrol penghitung.
Itu akan selalu mengeksekusi jumlah yang sama yaitu 5.
Dalam contoh berikutnya, ini adalah contoh di mana loop dapat dieksekusi
100 kali atau 0 kali.
Kondisi yang kami evaluasi di sini di kunci while kami di mana num tidak sama
dengan negatif 1 semuanya tergantung pada apa yang dimasukkan pengguna karena
num adalah apa yang dimasukkan pengguna.
Jadi loop ini dapat mengeksekusi 0 kali, mungkin mengeksekusi 100 kali.
Itu semua tergantung pada input dari keyboard.
Dan ini disebut loop kontrol sentinel. Ini tidak dikontrol.
Ini didasarkan pada logika dan variabel yang dapat berubah.
Jadi sementara num tidak sama dengan negatif 1 dan kemudian num
disimpan nilai yang kita masukkan di keyboard.
Jika pengguna tidak pernah memasukkan angka 1 negatif di keyboard, maka loop ini tidak akan pernah keluar.
Jadi jenis sintaks yang sama di sini dengan while kita.
Variabel kontrol loop kami di sini adalah num. Kami menginisialisasi 0 di atas,
dan kemudian kami membaca di memodifikasinya untuk melihat apakah kami akan memasuki loop berdasarkan
apa yang dimasukkan pengguna di keyboard.
Kemudian di dalam tanda kurung untuk kata kunci while, kita
benar-benar memeriksanya untuk melihat apakah itu negatif 1.
Dan kemudian di badan loop while dengan tanda kurung, tanda kurung
tidak perlu ada di sana karena ada satu pernyataan, tapi saya suka meletakkannya di sana.
Kemudian kita juga membaca input selanjutnya dan kita simpan di num.
Jika pengguna memasukkan 1 negatif untuk input berikutnya, itu akan melompat keluar dari loop.
Jika tidak, itu akan terus dijalankan dan meminta mereka untuk memasukkan informasi.
Perulangan do while sedikit berbeda dari perulangan
for pada perulangan while karena dianggap sebagai perulangan post-test.
Jadi dalam perulangan while, body dieksekusi ketika kondisinya benar.
Dalam perulangan do while di mana tubuh dieksekusi untuk pertama kalinya tanpa syarat,
perulangan do while karena pengujian berada di
bawah berarti Anda akan selalu menjalankan perulangan setidaknya sekali.
Anda akan selalu mengeksekusi tubuh setidaknya
satu kali, bisa lebih, tetapi selalu satu, tidak pernah 0.
Karena syarat untuk test exitnya ada di bagian bawah.
Ini disebut loop pasca-tes. Ini juga disebut loop yang dikendalikan keluar.
Jadi, Anda akan menggunakan loop do a while jika Anda ingin loop tersebut
masuk setidaknya satu kali.
Biasanya, Anda tidak perlu menggunakan perulangan do while karena
Anda masih dapat melakukan hal yang sama dalam perulangan for jika Anda mau,
Anda cukup meletakkan kode di luar perulangan.
Jadi do while loop tidak terlalu diperlukan, tetapi ada kasus yang mungkin Anda ingin gunakan.
Setelah eksekusi awal, tubuh
hanya dieksekusi saat kondisinya benar. Jadi setelah iterasi pertama dari loop, itu
akan bertindak seperti loop normal. Ini akan melompat keluar jika kondisinya salah.
Jadi di sini adalah apa yang tampak seperti. Do berada di atas
dan pengujian kondisi berada di bawah dengan kata kunci while.
Jadi lakukan adalah kata
kunci baru dan kemudian Anda akan memiliki tanda kurung atau bukan tanda kurung tergantung
pada apakah Anda memiliki beberapa pernyataan di badan atau tidak.
Jika Anda hanya memiliki satu pernyataan di badan, Anda tidak akan memiliki tanda kurung. Anda hanya perlu melakukannya di bagian atas
dan kemudian Anda akan memiliki waktu di bagian bawah loop.
Dan di dalam while, dalam tanda kurung, Anda akan memiliki evaluasi Boolean yang akan menjadi
kondisi yang Anda periksa. Tetapi sekali lagi,
karena kondisi itu ada di bawah, Anda selalu dijamin untuk mengeksekusi pernyataan setidaknya satu kali.
Jadi contoh di sebelah kiri adalah satu pernyataan, contoh di sebelah
kanan adalah beberapa pernyataan. Jadi Anda memiliki tanda kurung, kurung kurawal.
Dan lagi, dalam contoh kedua ini, Anda mengatakan Anda mungkin memiliki sesuatu seperti Prompt untuk kata sandi, membaca
input pengguna dan sementara input tidak sama dengan kata sandi.
Tetapi Anda akan selalu meminta kata sandi itu setidaknya satu kali.
Jadi yang lain lakukan contoh loop sementara.
Contoh teratas pertama di sini adalah contoh bagaimana
loop dapat dieksekusi satu
kali atau berkali-kali, tetapi tidak pernah 0.
Itu semua tergantung pada apa yang dimasukkan pengguna. Itu selalu akan dieksekusi setidaknya sekali, tetapi
ini membaca input dari keyboard. Kami melihat fungsi scanf.
Dan selama pengguna tidak memasukkan 20, mereka
akan menjalankan loop ini.
Loop while juga bisa menjadi loop kontrol counter, yang berarti akan dieksekusi beberapa kali.
Dalam hal ini, itu akan dieksekusi 4 kali dalam contoh ini.
Kami memiliki nomor int sama dengan 4. Dan kemudian kita telah melakukan di atas,
dan kemudian
kita memiliki tanda kurung karena kita memiliki banyak pernyataan di dalam tubuh.
Dan kami menambah variabel kontrol loop di dalam body, number plus plus.
Dan kemudian kondisi untuk pengecekan masih di bawah. Jadi Anda akan mengeksekusi ini 4 kali.
Dan Anda akan melihat kata kunci while tidak harus berada di baris yang sama dengan kurung kurawal kanan.
Biasanya, memang demikian, tetapi tidak harus demikian.
Dan kata kunci while di bagian bawah juga diakhiri dengan titik koma, Anda juga harus memperhatikan itu.
Jadi kita telah mempelajari semua tentang loop ini; perulangan for, while dan do while.
Loop apa yang harus Anda gunakan?
Nah, pertama-tama Anda harus memutuskan loop apa yang ingin Anda gunakan, pertama-tama apakah
Anda ingin pre-test atau post-test? Apakah Anda ingin menjalankan setidaknya sekali atau
Anda tidak ingin mengeksekusi setidaknya sekali? Jika Anda ingin menjalankan setidaknya
satu kali, maka Anda akan menggunakan do while. Jika itu bukan syarat,
maka Anda dapat menggunakan for atau while atau do while.
Jadi sebagian besar ketika Anda memutuskan loop apa yang akan digunakan, itu
akan selalu menjadi loop pra-tes. Anda harus menjauhi perulangan do while.
Ini hanya pilihan yang lebih baik dalam banyak kasus. Jauh lebih mudah untuk membaca.
Jauh lebih baik untuk melihat sebelum Anda benar-benar mengulang.
Jangan mulai looping, lebih baik periksa kondisi itu di atas.
Demi keterbacaan, jika loop sedang diuji, itu jauh lebih intuitif.
Jadi, periksa loop itu di awal, gunakan for atau while.
Dan dalam banyak kasus, loop harus dilewati sepenuhnya jika tes awalnya tidak terpenuhi.
Sekali lagi, karena begitulah ujiannya harus di atas. Anda tidak harus selalu mengeksekusi setidaknya sekali.
Untuk sebagian besar Anda mungkin selalu tidak ingin mengeksekusi.
Jadi, Anda harus menggunakan a untuk sementara waktu.
Sekarang pertanyaannya turun ke yang mana yang harus saya gunakan, untuk sementara waktu.
Ini benar-benar masalah preferensi pribadi. Tidak masalah karena seperti yang saya
katakan di awal kuliah ini, semua yang dapat Anda lakukan dalam waktu singkat, dapat Anda lakukan dalam waktu singkat.
Jadi, jika Anda lebih menyukai loop for, for terkadang sedikit lebih
cepat karena semua modifikasi kontrol loop dan inisialisasi serta kondisi keluar
semuanya dapat berada dalam satu baris.
Tapi itu benar-benar terserah Anda.
Biasanya, apa yang saya lakukan adalah saya akan menggunakan for loop untuk loop counter-controlled.
Tetapi sekali lagi, Anda dapat menggunakan hal yang sama. Jika Anda benar-benar ingin menggunakan for
loop dan membuatnya terlihat seperti beberapa saat, Anda
tidak memiliki ekspresi pertama dan ketiga,
Anda hanya memiliki satu. Jadi untuk pengujian titik koma titik koma sama dengan pengujian while.
Jadi ini hanya menunjukkan kepada Anda bahwa untuk sementara dapat melakukan hal yang sama,
hanya mengubah sedikit sintaks.
Jika Anda ingin benar-benar menggunakan perulangan while tetapi Anda ingin itu bertindak
seperti perulangan for, maka Anda akan mengawalinya dengan inisialisasi dan menyertakan pernyataan pembaruan di badan.
Jadi apa yang akan Anda lakukan adalah sesuatu seperti ini dan Anda biasanya selalu melakukan ini untuk loop sementara.
Tapi ini setara dengan for loop. Inisialisasi berada di luar
loop dari variabel kontrol, variabel kontrol loop.
Kondisi pengujian ada di dalam tanda kurung,
lalu Anda memperbarui variabel kontrol loop itu di badan loop while.
Dan itu sama dengan pembaruan uji inisialisasi loop for dan
kemudian body. Tidak ada perbedaan.
Sekali lagi, seperti yang saya sebutkan, saya menggunakan loop for mungkin untuk loop kontrol counter sedikit lebih banyak.
Tapi saya akan menggunakan for dan while secara bergantian, tergantung bagaimana perasaan saya hari itu.
Jadi for loop mungkin sedikit lebih tepat jika Anda ingin
menginisialisasi dan memperbarui variabel dalam satu baris.
Perulangan while lebih baik bila kondisinya sebaliknya.
Sekali lagi, loop kontrol counter untuk, loop kontrol sentinel mungkin loop while.
Dan berikut adalah contoh loop while dengan loop kontrol sentinel dan
loop for yang melakukan hal yang sama lagi atau loop for untuk kontrol counter.
Sementara loop dapat berjalan berkali-kali berdasarkan
apa yang dimasukkan pengguna, loop for dikendalikan oleh counter.
Jadi ini adalah while on the do while. Mudah-mudahan, ini jelas.
Kenali loop ini karena Anda sering ingin mengulang kode.
Di bahas sedikit tentang nested loops dan juga sedikit
perbedaan mekanisme untuk keluar dari loop menggunakan break
atau continue. Terima kasih.