Halo, dan selamat datang kembali.
Masih akan berbicara sedikit tentang aliran kontrol.
Jadi mari selami kode pengulangan loop.
Pertama, kita akan membicarakan ini untuk loop.
Perulangan for adalah
tentang pengulangan kode. Jadi hanya sebagai pengingat, mengulangi kode
adalah cara untuk memungkinkan tidak adanya duplikasi dan
Anda sebenarnya mungkin mengeksekusi lebih dari satu kode yang sama pada satu
waktu.
Jadi bahasa pemrograman c memiliki konstruksi tertentu yang dirancang untuk bahasa
yang dapat Anda gunakan saat Anda ingin mengulang kode.
Dan ini memungkinkan Anda untuk mengulang blok pernyataan sampai beberapa kondisi terpenuhi.
Jadi ini mirip dengan perulangan for dan Anda akan mengevaluasi ekspresi
Boolean, sebuah kondisi. Anda tidak bisa lari selamanya.
Ketika Anda berjalan dalam satu lingkaran selamanya, itu berarti itu adalah lingkaran yang tak terbatas.
Dan hanya ada saat-saat tertentu Anda
mungkin ingin melakukannya lagi seperti memantau atau mendengarkan sesuatu.
Jadi berapa kali loop diulang dapat dikontrol hanya dengan akun.
Ada 2 jenis loop
yang bisa kamu lakukan, counter control loop atau seperti itu namanya sentinel control loop.
Sebuah loop kontrol counter berarti bahwa loop
berjalan 10 kali, 20 kali, 30 kali, jumlah waktu tertentu.
Itu mengulangi blok pernyataan yang sama di dalam loop
beberapa kali.
Anda dapat memiliki jenis loop lain yang tidak dikontrol secara kontra.
Mungkin berjalan 5 kali, mungkin berjalan 100, mungkin ingin 20,
semuanya tergantung pada suatu kondisi, variabel atau sesuatu. Jadi misalnya, Anda dapat menjalankan loop
yang mengatakan saya akan menjalankan loop saya berulang-ulang sampai
pengguna masuk keluar.
Jadi sampai variabel berubah untuk berhenti. Ini tidak dikontrol. Itu tidak tergantung.
Sekali lagi, itu mungkin berjalan 10 kali, itu mungkin berjalan 100 kali.
Ini adalah 2 jenis loop yang berbeda. Jadi saya akan memberikan contoh
keduanya, tetapi pikirkan saja ini pada tingkat tinggi kapan saya ingin mengulang kode?
Yah, saya mungkin ingin mengulang kode 5 kali, waktu tertentu, jumlah
waktu pasti atau saya mungkin ingin meletakkan
kode berdasarkan kondisi tertentu yang dimasukkan oleh pengguna, dan itu disebut sentinel.
Perulangan for kami memiliki kata kunci for. Ini digunakan untuk mengeksekusi
beberapa kali. Biasanya digunakan untuk counter control, tetapi tidak perlu demikian.
Anda dapat menggunakannya untuk loop kontrol counter atau sentinel untuk mengontrol loop.
Terserah kamu. Tetapi banyak contoh dalam banyak latihan
yang dikontrol secara kontra, dalam jumlah waktu tertentu.
Jika Anda ingin menampilkan angka dari 1 hingga 10, misalnya, Anda akan menggunakan perulangan for.
Anda tidak ingin menulis 10 baris kode dengan
pernyataan printf yang sama di sana menampilkan nomor yang berbeda.
Itu sangat tidak efisien. Ini sangat memakan waktu.
Anda akan menggunakan for loop untuk mengulang kode.
Apa yang akan Anda lakukan adalah Anda akan melakukan sesuatu seperti ini.
Berikut adalah pengantar untuk tampilan for
loop, sintaksnya.
Anda memiliki kata kunci untuk, dan kemudian Anda memiliki tanda kurung ini.
Sekali lagi, tanda kurung mengidentifikasi hal-hal berbeda yang terjadi
untuk perulangan for.
Kemudian Anda memiliki tanda kurung, dan Anda memiliki pernyataan di dalam tanda kurung.
Jadi sekali lagi, tanda kurung mewakili badan perulangan,
sama seperti tanda kurung yang mewakili badan pernyataan if.
Jika Anda memiliki satu pernyataan di sana, Anda tidak memerlukan tanda kurung, tetapi
praktik yang baik untuk selalu menggunakannya.
Jadi dalam contoh ini, Anda melihat kata kunci for, yang seharusnya menjadi hal pertama yang Anda identifikasi.
Operasi, berapa lama itu akan berjalan dikendalikan dan apa yang muncul di antara tanda kurung
setelah kata kunci for, yang akan kita bahas lebih detail.
Pada dasarnya ada 3 ekspresi berbeda di dalamnya.
Dan Anda dapat mengenalinya karena dipisahkan oleh titik koma.
Jadi titik koma mengatakan ini adalah pernyataan ekspresi.
Jadi apa yang 3 hal itu lakukan, kami akan menjelaskannya.
Tindakan yang ingin Anda
ulangi ada di dalam tubuh loop, itulah yang terjadi berkali-kali.
Dalam contoh ini, badan perulangan adalah printf.
Jadi jika suatu kondisi dievaluasi benar, itu akan terus mencetak angka itu.
Dan sekali lagi, untuk pernyataan tunggal Anda dapat menghilangkan tanda kurung kurawal.
Jadi mari kita bahas ini secara detail.
pola umum untuk for loop adalah Anda memiliki jenis pernyataan ini.
Anda memiliki untuk dan kemudian Anda memiliki kondisi awal, ini adalah kodesemu.
Saya mencoba menggambarkan for loop di sini.
Jadi kondisi awal adalah hal pertama, semuanya sebelum titik koma pertama.
Hal kedua adalah kondisi kelanjutan dengan titik
koma di akhir dan kemudian hal terakhir di antara tanda kurung adalah tindakan per iterasi.
Dan saya ingin menggambarkan masing-masing dari ini. Dan kemudian setelah itu di dalam tubuh adalah pernyataan loop.
Pernyataan loop cukup mudah. Itu hanya di dalam tubuh.
Itu kode yang akan dieksekusi yang diulang setiap kali.
Itu cukup mendasar.
Dan sekali lagi, Anda dapat memiliki tanda kurung kurawal jika Anda memiliki banyak pernyataan atau menghilangkan
tanda kurung kurawal jika Anda memiliki satu pernyataan.
Kondisi awal, bahwa hal pertama di dalam
tanda kurung sebelum titik koma pertama biasanya tetapi tidak
selalu biasanya menginisialisasi variabel, yang disebut variabel kontrol loop.
Itulah variabel yang akan Anda mulai untuk melihat setiap iterasi.
Jadi variabel kontrol loop biasanya penghitung kadang-kadang, tidak
selalu lagi, saya ingin menekankan bahwa,
itu tidak harus. Tetapi sering kali dalam perulangan
for itu adalah penghitung, dan ini melacak seberapa sering perulangan telah diulang.
Itulah yang dilakukan oleh kondisi awal dan variabel kontrol loop ini.
Anda juga dapat mendeklarasikan dan menginisialisasi beberapa variabel dengan tipe yang sama di sini
dengan deklarasi yang dipisahkan dengan koma. Jadi Anda dapat memiliki beberapa inisialisasi di
sini variabel.
Sekarang tergantung pada kompiler c apa yang Anda
gunakan, Anda mungkin tidak dapat mendeklarasikan variabel-variabel tersebut di dalam pernyataan for.
Jika Anda menggunakan apa pun di bawah kompiler C99, Anda harus
mendeklarasikan variabel di luar pernyataan for dan kemudian Anda hanya akan menginisialisasinya di sini di
mana kondisi awal mengatakan,
tetapi kita akan membahas beberapa contoh tersebut.
Tetapi kondisi awal adalah di mana Anda menginisialisasi variabel.
Ini adalah variabel kontrol loop dan dinamai karena alasan itu karena
mengontrol seberapa sering loop akan dieksekusi saat Anda menginisialisasinya.
Hal berikutnya yang ingin saya bicarakan adalah kondisi lanjutan, kondisi lanjutan, bagian
sebelum dan sesudah titik koma pertama dalam perulangan for.
Ini adalah ekspresi logis.
Ini adalah kondisi yang akan dievaluasi menjadi benar atau salah.
Ini adalah saat Anda akan melompat ke dalam lingkaran atau keluar dari lingkaran.
Ini menentukan apakah loop harus terus dieksekusi.
Selama kondisi ini memiliki nilai true, loop terus dieksekusi,
semua pernyataan di dalam tubuh akan dieksekusi.
Ini biasanya akan memeriksa nilai variabel kontrol loop.
Jadi Anda menginisialisasi variabel kontrol loop dalam kondisi awal dan
kemudian Anda melihat dalam kondisi lanjutan.
Anda dapat meletakkan logika atau ekspresi aritmatika apa pun di sini selama Anda tahu apa yang Anda lakukan.
Kondisi lanjutan diuji di awal loop, bukan di akhir.
Ini disebut sebagai loop pra-tes.
Anda akan melihat perbedaannya ketika kita berbicara tentang perulangan do-while, yang merupakan perulangan post-test.
Tetapi ini berarti bahwa pernyataan loop dapat dieksekusi satu kali,
dapat dieksekusi 0 kali.
Itu semua tergantung pada apakah kondisi kelanjutan itu bernilai benar atau salah.
Jika bernilai false, Anda tidak akan pernah mengeksekusi tubuh.
Jika bernilai true, Anda akan menjalankan badan itu setidaknya sekali.
Tindakan per iterasi yang berada di akhir for loop setelah titik koma
kedua, yang biasanya melakukan semacam modifikasi dari variabel kontrol loop.
Ini akan menambah atau menguranginya jika itu adalah
penghitung loop atau jika itu adalah loop sentinel, ia mungkin meminta pengguna untuk memasukkan lebih banyak input.
Anda juga dapat melakukan lebih dari satu modifikasi variabel.
Anda dapat memodifikasi variabel kontrol loop, dan Anda dapat memodifikasi variabel lainnya.
Anda hanya perlu memisahkannya dengan koma.
Tetapi untuk meringkas semua
yang saya katakan, kami memiliki tabel kecil yang menjelaskan hal itu.
Tetapi sebelum kita membicarakannya, mari kita lihat sedikit contoh.
Jadi inilah contohnya. Kami memiliki kata kunci untuk.
Dan kemudian Anda akan melihat bahwa kita memiliki int I sama dengan 1 j
sama dengan 2, di situlah kita menginisialisasi variabel.
Dan kami sebenarnya menginisialisasi 2 variabel di sini dipisahkan dengan
koma, biasanya dalam loop for biasanya hanya menginisialisasi satu, variabel kontrol loop.
Tetapi dalam kasus ini, kami menginisialisasi I dan j.
Dan kemudian setelah titik koma itu, kita memiliki kondisinya.
Kapan kita akan masuk dan kapan kita akan keluar dari loop ini.
Kita akan masuk selama I kurang dari sama dengan 5.
Itu ekspresi Boolean kami mengevaluasi benar atau salah.
Dan kemudian setelah titik koma kedua
itu, kita akan memodifikasi variabel kontrol loop itu atau variabel lain yang kita perhatikan.
Di sini kita melakukan plus, plus I, ini
adalah operator inkremental, awalan I. Dan kemudian kami menetapkan j sama dengan j ditambah 2.
Itu biasanya akan menjadi kondisi x Anda, memodifikasi
variabel kontrol loop itu.
Dan kemudian badan perulangan hanya memiliki satu pernyataan, jadi kita tidak memerlukan tanda kurung.
Kami hanya mencetak nilai I kali j.
Jadi output yang dihasilkan oleh kode ini
akan menjadi nilai 2, 8, 18, 32 dan 50 pada satu baris.
Iterasi pertama dari loop, I akan sama dengan 1, j akan sama dengan 2.
Jadi itu akan mengatakan saya kali j, yaitu 1 kali 2 dan itu akan menampilkannya.
Ini akan memeriksa untuk memastikan saya tidak lebih besar dari 5, saya bukan 1.
Jadi itu akan kembali dan mengeksekusi untuk kedua kalinya.
Dan kami juga memodifikasi variabel I dalam pernyataan terakhir kami.
Jadi pada iterasi kedua dari loop, I akan sama dengan 2.
Dan j akan sama dengan 2 ditambah 2 yaitu 4.
Jadi sekarang kita akan mengalikan 2 kali 4, yaitu 8
dan kita akan menampilkannya dan kemudian kita akan memeriksa apakah
saya lebih besar dari 5? Tidak, saya masih 2.
Jadi kita memodifikasi I menjadi sama dengan 3 untuk
iterasi berikutnya, dan kita memodifikasi j menjadi sama dengan 4 ditambah
2 yaitu 6.
Dan kemudian untuk iterasi ketiga
dari loop, kami mengalikan I kali J. Jadi kita katakan 3 kali 6 dan kita tampilkan 18.
Sebelum kita menjalankan iterasi keempat, kita periksa untuk melihat apakah I lebih besar dari 5.
Tidak, ini 4. Lalu kita naikkan, kita sebut 5. Ini sama dengan 5, jadi itu akan tetap berjalan.
Kemudian kita akan melakukan 32, dan kemudian kita akan melakukan 50.
Jadi ini adalah pernyataan untuk. Anda ingin menjalankan ini dan menjalankannya
di browser kode dan bermain-main dan mengubah banyak hal.
Tapi apa yang kami lakukan di sini adalah kami melakukan 3 hal terpisah pada satu baris kode.
Kami menginisialisasi variabel kontrol loop atau variabel lainnya.
Kami memiliki ekspresi Boolean kami setelah titik koma pertama kami, kondisi keluar kami.
Dan kemudian kita memodifikasi variabel kontrol loop dan variabel lain yang kita inginkan
sebagai bagian terakhir dari pernyataan for.
Jadi untuk meringkas apa yang kami lakukan, saya menemukan bagan kecil yang bagus ini
dari sebuah buku dan saya ingin menunjukkannya kepada Anda. Ini merangkum semuanya.
Titik koma pertama menginisialisasi variabel kontrol loop.
Setelah titik koma pertama, kami melakukan kondisi kami, ekspresi Boolean kami.
Dan kemudian setelah titik koma
kedua, kami memodifikasi variabel kontrol loop itu. Dan ini adalah contoh khas yang Anda lihat.
Ini adalah loop kontrol counter yang dimulai dari 1 dan berlanjut hingga 10.
Jadi ini akan benar-benar mengeksekusi 10 kali.
Kuncinya ada di sana kurang dari sama dengan 10. Jadi Anda akan melihat operator relasional sebagai kondisi kita,
sama seperti kita melihat operator relasional sebagai kondisi pada pernyataan if kita.
Kuncinya di sini adalah Anda ingin memodifikasi variabel kontrol loop itu atau Anda tidak akan pernah keluar.
Jadi jumlah plus plus sangat penting.
Dan sejauh sebelum atau sesudah kenaikan apakah plus plus itu sebelum variabel atau setelah
variabel, Anda
tidak perlu khawatir tentang itu karena
itu hanya akan bertambah atau berkurang setelah iterasi loop, jadi tidak' Tidak masalah jika
Anda melakukan plus plus count atau count plus plus.
Dan juga sekali lagi tergantung pada versi c yang Anda jalankan
untuk kompiler Anda, Anda mungkin
dapat mendeklarasikan jumlah variabel di dalam for loop atau Anda mungkin harus mengatakan
int count sama dengan 1 atau di count di luar for loop dan kemudian inisialisasi di titik koma pertama.
C99 menambahkan inisialisasi dan deklarasi di bagian yang
sama dari for loop.
Tapi ini pada dasarnya bagaimana for loop bekerja.
Sekarang mari kita masuk ke contoh kecil, saya ingin menunjukkan kepada Anda fleksibilitas dari for loop.
Berikut adalah contoh di mana kita pada dasarnya hanya menjumlahkan beberapa bilangan bulat.
Dan dalam contoh ini, kita akan meminta pengguna memasukkan sejumlah bilangan bulat yang ingin mereka jumlahkan.
Kami akan menyimpannya dalam variabel yang disebut count.
Kami sekarang akan memiliki for loop yang melewati
semua itu tergantung pada nomor yang mereka masukkan berulang kali.
Jadi di sini kita katakan 4, kita memiliki int unsigned, tidak harus unsigned
int I sama dengan 1. Kami menginisialisasi variabel kontrol loop.
Dan kemudian kami mengatakan jika saya kurang dari untuk menghitung, saat itulah kita akan keluar dan
kemudian kita akan memodifikasi materi loop plus plus I.
Jadi ini akan berjalan. Sekali lagi,
1 hingga angka yang dimasukkan pengguna, 10 atau 20.
Dan semua yang akan kita lakukan adalah kita akan mengatakan jumlah sama dengan jumlah ditambah 1.
Sekarang for loop sangat kuat karena for loop memungkinkan Anda
untuk memodifikasi banyak variabel.
Kita bahkan tidak perlu menempatkan jumlah itu ditambah sama dengan I di badan perulangan for.
Kita bisa meletakkannya di akhir pernyataan terakhir.
Jadi selain menambah I dengan 1, kita bisa mengatakan jumlah plus sama dengan I plus plus.
Jadi kami melakukan semuanya dalam satu baris kode,
dan itu menunjukkan kepada Anda fleksibilitasnya. itu semua karena kita dapat
memodifikasi variabel dalam pernyataan for itu sendiri. Kita tidak harus memiliki garis tubuh itu.
Jadi mari kita lihat contoh ini dalam blok kode untuk
menunjukkan kepada Anda bagaimana Anda dapat memanipulasinya dan melihat apa hasilnya.
Inilah contoh kami yang kami miliki di kuliah. Saya ingin melanjutkan dan mencoba mengkompilasi ini.
Dan ketika saya mengkompilasi ini, Anda akan melihat bahwa saya memiliki kesalahan.
Dikatakan saya tidak dapat mendeklarasikan variabel saya di dalam pernyataan for saya. Ini karena saya menjalankan versi lama
dari kompiler c. Saya menjalankan C89.
Anda mungkin tidak akan memiliki ini.
Tetapi untuk mengatasinya, jika Anda pernah melihat jenis kesalahan ini, Anda
harus menghapusnya di luar for loop. Jadi Anda hanya mengatakan unsigned I.
Dan kemudian di dalam for loop, Anda
menginisialisasinya, kira-kira seperti ini. Sekarang mari kita coba
membangun dan saya hanya perlu menyingkirkan beberapa penentu format ini.
Jadi ketika saya berhasil mengkompilasi dan menjalankan
program ini, Anda akan melihat cara kerja loop.
Ini akan meminta saya untuk memasukkan bilangan bulat yang ingin saya jumlahkan. Jika saya memasukkan 5, itu
akan menjumlahkan 1 2 3 4 dan 5 yaitu 15.
Dan yang bisa kita lakukan untuk men-debug ini adalah kita bisa menambahkan tanda kurung ke
for loop, dan kita mungkin ingin melihat berapa kali itu berjalan, kita bisa menambahkan
pernyataan cetak untuk tidak men-debugnya, tapi lihat saja apa yang terjadi , kita bisa mengatakan di dalam loop.
Dan ini akan memberitahu kita bahwa loop berjalan 5
kali karena itu akan menjalankan I to count.
Jadi yang ingin saya tunjukkan adalah berapa kali ini berjalan. Jadi sekarang ketika saya membangunnya
dan menjalankannya, saya akan melihat apa yang terjadi untuk setiap iterasi.
Jadi saya akan mengatakan 8.
Di dalam loop, di dalam loop, di dalam loop, saya tidak menambahkan umpan baris. Jadi sulit untuk dibaca,
tetapi loop dalam ditampilkan 8 kali.
Dan kemudian saya jumlahkan masing-masing angka di dalam loop, jadi jawabannya adalah 36,
1 ditambah 2 ditambah 3 ditambah 4 ditambah 5 ditambah 6 ditambah 7 ditambah 8.
Jadi Anda bisa bermain-main dengan ini. Tetapi sekali lagi, kami
menginisialisasi variabel kontrol loop kami. Kami memeriksa kondisi untuk keluar. Kami akan keluar setelah kami menekan
apa pun yang dimasukkan pengguna. Jika pengguna memasukkan 8, kita akan
menjalankan 8 kali dan kemudian kita harus memodifikasi I. Jika kami tidak memodifikasi I di sini, Anda akan memiliki loop selamanya.
Dan apa yang akan terjadi ketika Anda menjalankan
program, itu akan berjalan selamanya.
Jadi Anda akan melihat setelah Anda memasukkan nomornya, program Anda tidak akan pernah keluar.
Jadi katakan kita masuk 6, saya tekan enter, lihat apa yang
terjadi, hanya mencetak lingkaran di dalam. Itu tidak pernah keluar.
Ini adalah lingkaran tak terbatas. Jadi hal terakhir itu sangat, sangat penting. Anda selalu ingin mengubah variabel kontrol loop Anda.
Dan lagi, variabel kontrol loop menentukan jalan keluar, dalam hal ini I.
Jadi for loop digunakan cukup sedikit.
Ini sangat mudah digunakan dan memungkinkan Anda untuk melakukan 3 hal berbeda di dalam loop.
Inisialisasi variabel kontrol loop, periksa kontrol
loop variabel untuk kondisi keluar dan kemudian ubah
variabel kontrol loop itu.
Itu adalah 3 hal yang harus Anda lakukan dalam satu lingkaran, dan Anda dapat melakukannya dalam satu pernyataan.
Sekarang izinkan saya berbicara tentang loop tak terbatas dengan sangat cepat.
Jadi saya baru saja mendemonstrasikan infinite loop. Di sinilah Anda tidak pernah keluar.
Dan Anda tidak memiliki kewajiban untuk memasukkan parameter apa pun ke dalam pernyataan for loop.
Anda benar-benar dapat menulis loop tak terbatas dengan sengaja.
Cara Anda melakukannya adalah dengan meletakkan titik koma di sana.
Jadi, Anda akan memiliki for loop dengan 2 titik koma.
Jika Anda pernah melihatnya, itu berarti Anda sedang menulis sebuah infinite loop.
Sekarang biasanya, Anda tidak ingin memiliki
loop tak terbatas, tetapi ada kalanya karena kondisi untuk melanjutkan loop tidak ada.
Loop akan terus berlanjut tanpa batas. Ini terkadang berguna jika Anda memantau data.
Jadi jika Anda memantau data, Anda mungkin memiliki sesuatu di sana.
Biasanya, ketika Anda memiliki loop selamanya, Anda biasanya juga
memiliki sleep, yang akan menjeda eksekusi program, mungkin sesaat sehingga Anda memantau sesuatu.
Kasus penggunaan lain di mana Anda mungkin memiliki infinite loop adalah jika Anda mendengarkan koneksi.
Jadi, jika Anda menunggu dan mendengarkan koneksi atau jika Anda menarik sesuatu untuk
melihat sesuatu, Anda dapat melakukannya.
Sekarang beberapa orang berpendapat bahwa Anda tidak boleh menarik dan Anda tidak
boleh mendengarkan, tetapi itu argumen lain.
Itu benar-benar satu-satunya kasus untuk beberapa loop yang tidak terbatas.
Hindari loop tak terbatas sebanyak mungkin dengan memodifikasi variabel kontrol loop tersebut.
Saya harap ini membantu. Ini adalah perulangan for.
Kami akan menggunakan for loop di salah satu tantangan kami, jadi kami menjadi lebih akrab.
Terima kasih.