Tip:
Highlight text to annotate it
X
[Powered by Google Translate] TOMMY MACWILLIAM: Mari kita bicara tentang loop, salah satu yang umum
pemrograman konstruksi kita akan melihat seluruh CS50.
Kami akan menggunakan loop ketika kita ingin melakukan
tugas yang lebih dari sekali.
Sebagai contoh, kita mungkin ingin mencetak "hi" 100 kali atau cetak
semua huruf alfabet.
Dalam kedua kasus ini, kita memiliki satu hal yang ingin kita lakukan
beberapa kali, mencetak sesuatu.
Namun, apa yang kita mencetak setiap kali dapat bervariasi.
Jadi kita bisa melakukan sesuatu yang sedikit berbeda pada setiap
iterasi, atau berjalan melalui, dari loop.
Kita akan melihat tiga jenis loop di C, sementara
loop, untuk loop, dan dilakukan sementara loop.
Meskipun ketiga jenis loop memiliki sintaks yang berbeda,
ide-ide di belakang mereka adalah sama.
Kita akan mendefinisikan beberapa blok kode dalam kurung kurawal,
disebut tubuh dari loop, bahwa kita ingin dieksekusi
beberapa beberapa kali.
Dengan mengubah nilai-nilai variabel yang digunakan dalam tubuh, kita
dapat membuat lingkaran kita melakukan sesuatu yang berbeda setiap kali dijalankan.
Dengan setiap loop yang kita tulis, kita juga harus memutuskan kapan
loop akan berhenti berjalan.
Jika kita tidak melakukan itu, maka komputer terpercaya kami akan terus
untuk menjalankan loop yang sampai kita membunuh program.
Dalam Scratch, kita bisa menggunakan ulangi n kali
blok untuk membuat lingkaran.
Semua potongan-potongan dalam blok yang mengatakan ulangi 10
akan dijalankan 10 kali.
Dan kemudian, kita akan pindah ke bagian setelah loop.
Jadi kondisi stop kami adalah sederhana, blok ini telah
menjalankan 10 kali.
Jadi mari kita menciptakan ini di C. Agar Scratch untuk memastikan
bahwa potongan dalam blok ulangi dieksekusi
tepatnya 10 kali, Scratch perlu melacak setiap
pelaksanaan blok ulangi.
Untuk melacak berapa kali tubuh loop kami telah
dieksekusi, mari kita membuat sebuah variabel yang disebut i.
Kami akan mulai saya turun di nol, karena lingkaran kami
belum dijalankan belum.
Oke
Sekarang kita akan menggunakan kata kunci sedangkan untuk memulai lingkaran kami.
Sekarang kita harus mencari tahu ketika loop kami akan berhenti, namun
mari kita meninggalkan ini untuk sekarang dan kemudian datang kembali ke sana.
Baiklah.
Di dalam loop kita, mari kita mencetak pesan keluar, seperti
"Hi." Kita dapat menggunakan fungsi printf untuk ini.
Baiklah.
Jadi sekarang kita akan mencatat bahwa iterasi dari tubuh loop memiliki
telah dieksekusi.
Kita dapat melakukannya dengan menambahkan 1, atau incrementing, counter kami
variabel, i.
Untuk melakukan itu, kita dapat mengatakan saya adalah sama dengan i, ditambah 1 atau lebih
sederhana, i plus plus.
Besar.
Jadi sekarang kita dapat melihat bahwa setiap kali loop kami dijalankan, kami
variabel counter naik per satu.
Jadi kita tahu persis berapa banyak iterasi kita jalankan selama ini.
Setelah satu iterasi dari loop, nilai kita
i akan 1.
Setelah dua iterasi, saya akan 2.
Dan setelah 10 iterasi, saya akan menjadi 10.
Jadi, jika kita ingin menjalankan loop ini tepat 10 kali, kemudian
ini adalah ketika kita ingin berhenti.
Jadi kita ingin menjalankan loop ini sementara i adalah kurang dari 10, dan
itulah apa yang kita akan menulis, sementara saya
kurang dari 10.
Kondisi ini terlihat seperti kondisi kita digunakan dalam olah
lain blok.
Setelah badan pengulangan kami telah dieksekusi, program kami
akan melompat kembali ke kondisi loop.
Jika kondisi benar, maka tubuh
loop akan dijalankan lagi.
Jika kondisi ini tidak lagi benar, maka loop kita tidak akan
lari lagi dan akan pindah ke baris berikutnya kode
bawah lingkaran kami.
Baiklah.
Jadi mari kita lihat tipe kedua
loop, untuk loop.
Di samping kata kunci sementara, dalam tanda kurung, kami memiliki satu hal,
kondisi yang diperlukan untuk menjadi kenyataan untuk
tubuh loop yang akan dijalankan.
Itu berarti kita harus membuat variabel counter kami di luar
dari loop dan ingat untuk kenaikan itu di beberapa titik
dalam loop.
Header untuk kami untuk loop, di sisi lain, memiliki tiga
bagian, yang masing-masing akan dipisahkan dengan titik koma.
Dalam ketiga pertama kami, kita dapat mendeklarasikan setiap counter atau penolong
variabel yang kita ingin gunakan dalam lingkaran kami.
Dalam prakteknya, hal ini dapat benar-benar membantu.
Kami benar-benar tidak membutuhkan variabel, i, setelah beberapa saat kami
lingkaran telah dijalankan, sehingga kita benar-benar tidak harus mendeklarasikan
luar loop.
Sepertiga kedua akan menjadi kondisi yang harus benar
bagi tubuh akan dieksekusi lagi, seperti
dalam loop sementara kami.
Dalam ketiga terakhir kami, kita dapat menjalankan pernyataan yang akan
dieksekusi setelah setiap iterasi dari loop, jadi kita tidak memiliki
untuk membangun ke dalam tubuh loop.
Jadi mari kita menulis untuk loop yang menghitung mundur dari 5 banding 1.
Kita akan mulai dengan kata kunci untuk.
Kita dapat membuat variabel counter pertama, yang kita akan
set ke 5 saat ini karena kita sedang menghitung mundur,
diikuti dengan titik koma.
Berikutnya adalah kondisi kita, yang kita akan kembali ke.
Ketiga, kami ingin untuk penurunan variabel counter kami setelah
setiap iterasi dari loop.
Jadi daripada mengatakan saya plus plus, kita akan mengatakan saya dikurangi minus.
Baiklah.
Jadi kita ingin tubuh loop untuk menjalankan sementara saya masih
lebih besar dari 0.
Dalam tubuh loop, mari kita mencetak nilai dari i.
Untuk melakukannya, kita akan menggunakan fungsi printf, menggunakan% d
placeholder.
Ingat, placeholder yang akan diganti dengan
nilai i.
Akhirnya, mari kita tambahkan sebuah pernyataan setelah kami untuk loop.
Ketika kita menjalankan loop ini, saya akan mulai turun di 5,
jadi 5 akan dicetak.
Setelah saya sampai ke 0, kondisi kelanjutan, i adalah
lebih besar dari 0, tidak akan lagi terus.
Jadi lingkaran kami akan berhenti mengeksekusi, dan kita akan melihat
pernyataan setelah loop.
Jadi mari kita menjalankan kode ini.
Pertama, kita akan menyusun
countdown.c dengan membuat mundur.
Sekarang, kita dapat menjalankan kode ini dengan / mundur..
Dalam kedua loop sementara dan untuk loop, kami kelanjutan
Kondisi akan diperiksa sebelum tubuh
loop dijalankan.
Itu berarti bahwa, jika kondisi kita tidak awalnya
benar, maka badan pengulangan kami tidak akan pernah dijalankan.
Jadi kadang-kadang berguna untuk memeriksa kondisi setelah
tubuh loop daripada sebelumnya.
Jadi mari kita menulis loop untuk meminta pengguna untuk nomor
sampai angka positif diberikan.
Jika pengguna masukan angka negatif, kita akan ingin meminta mereka
untuk nomor lain.
Jadi kita akan ingin prompt ini berada di dalam
tubuh dari loop.
Namun, ketika loop dijalankan untuk pertama kalinya, pengguna
belum memberikan kami nomor belum.
Jadi tidak masuk akal untuk memeriksa apakah itu positif.
Sebaliknya, kita akan ingin memeriksa nomor setelah tubuh
loop dijalankan.
Kita bisa melakukan ini dengan do while loop.
Pertama, kita akan membuat sebuah variabel, n, yang akan terus
pengguna masukan.
Sekarang kita akan menggunakan kata kunci do, diikuti oleh kurung kurawal yang
akan memulai tubuh loop kami.
Di dalam tubuh, kita dapat meminta pengguna untuk sejumlah dengan
GetInt fungsi.
Sekarang, kita akan ingin tubuh loop ini untuk mengeksekusi lagi jika
pengguna mengetik angka negatif, jadi kita akan mengatakan sedangkan n
kurang dari 0.
Perhatikan titik koma di sini setelah laporan sementara.
Jadi mari kita menjalankan kode ini.
Pertama, kita akan mengkompilasi ini dengan membuat positif.
Sekarang kita bisa menjalankan program dengan. / Positif.
Jika kita memberikan program ini angka negatif, seperti negatif
4, maka kita akan diminta lagi untuk sejumlah sejak
kondisi do kami sementara loop benar.
Setelah kita memberikan angka positif, seperti 8, maka
kondisi do while kami tidak akan lagi menjadi kenyataan.
Jadi loop tidak akan dieksekusi lagi.
Dan itu saja untuk tiga jenis loop kita akan gunakan dalam C.
Nama saya Tommy, dan ini adalah CS50.