[Powered by Google Translate] TOMMY MACWILLIAM: Mari kita bercakap tentang gelung, salah satu daripada biasa
pengaturcaraan membina kita akan melihat seluruh CS50.
Kami akan menggunakan gelung apabila kita mahu melakukan
tugas yang lebih daripada sekali.
Sebagai contoh, kita mungkin mahu mencetak "hi" 100 kali atau cetak
keluar semua huruf abjad.
Dalam kedua-dua kes ini, kita mempunyai satu perkara yang kami mahu lakukan
beberapa kali, mencetak sesuatu yang keluar.
Walau bagaimanapun, apa yang kita cetak keluar setiap kali boleh berbeza-beza.
Jadi, kita boleh melakukan sesuatu yang sedikit berbeza pada setiap
lelaran, atau berjalan melalui, gelung.
Kita akan melihat tiga jenis gelung dalam C, manakala
gelung, gelung, dan lakukan semasa gelung.
Walaupun ketiga-tiga jenis gelung mempunyai sintaks yang berbeza,
idea-idea yang di belakang mereka adalah sama.
Kami akan menentukan beberapa blok kod dalam pendakap kerinting,
dipanggil badan gelung, yang kita mahu akan dilaksanakan
beberapa beberapa kali.
Dengan menukar nilai pembolehubah yang digunakan di dalam badan, kita
boleh membuat gelung kami melakukan sesuatu yang berbeza setiap kali ia berjalan.
Dengan gelung mana-mana kita menulis, kita juga perlu untuk membuat keputusan apabila
gelung akan berhenti berjalan.
Jika kita tidak berbuat demikian, maka komputer kepercayaan kami akan terus
untuk menjalankan gelung itu sehingga kita membunuh program.
Awal, kita boleh menggunakan ulangan n kali
menyekat untuk mewujudkan gelung.
Semua keping di dalam blok yang berkata berulang 10
akan menjalankan 10 kali.
Dan kemudian, kita akan bergerak kepada keping selepas gelung yang.
Jadi keadaan perhentian kami adalah semata-mata, blok ini telah
menjalankan 10 kali.
Jadi mari kita mencipta ini dalam C. Dalam usaha untuk Gores untuk memastikan
bahawa keping dalam blok berulang dilaksanakan
tepat 10 kali, Gores perlu menjejaki setiap
pelaksanaan blok ulangan.
Untuk menjejaki berapa kali badan gelung kami telah
dilaksanakan, mari kita mewujudkan pemboleh ubah yang dipanggil i.
Kami akan mula i bermula pada sifar, kerana gelung kami
telah tidak dijalankan lagi.
OK
Sekarang kita akan menggunakan kata kunci sementara untuk memulakan gelung kami.
Sekarang kita akan perlu memikirkan apabila gelung kami akan berhenti, tetapi
mari kita meninggalkan ini untuk sekarang dan kemudian kembali kepadanya.
Semua hak.
Dalam gelung kita, mari kita hanya mencetak mesej, seperti
"Hi." Kita boleh menggunakan fungsi printf untuk ini.
Semua hak.
Jadi sekarang kita akan merakam bahawa lelaran badan gelung mempunyai
telah dilaksanakan.
Kita boleh berbuat demikian dengan menambah 1 atau incrementing, kaunter kami
berubah-ubah, i.
Untuk berbuat demikian, kita boleh katakan i sama dengan i campur 1, atau lebih
semata-mata, i campur campur.
Besar.
Jadi sekarang kita dapat melihat bahawa setiap kali gelung kami berjalan, kami
pembolehubah kaunter naik demi satu.
Jadi kita tahu dengan tepat berapa banyak lelaran kita telah dijalankan setakat ini.
Selepas satu lelaran gelung, nilai kita
i akan menjadi 1.
Selepas dua lelaran, i akan 2.
Dan selepas 10 lelaran, i akan menjadi 10.
Jadi, jika kita mahu untuk menjalankan gelung ini tepat 10 kali, maka
ini adalah apabila kita mahu berhenti.
Jadi kita mahu untuk menjalankan gelung ini manakala i adalah kurang daripada 10, dan
itulah apa yang kita akan menulis, manakala i
adalah kurang daripada 10.
Keadaan ini kelihatan seperti keadaan kita digunakan dalam jika
blok lain.
Selepas badan gelung kami telah dilaksanakan, program kami
akan melompat kembali kepada keadaan gelung.
Jika keadaan ini benar, maka badan
gelung akan dijalankan lagi.
Jika keadaan ini tidak lagi benar, maka gelung kami tidak akan
berlari lagi dan akan bergerak ke baris seterusnya kod
bawah gelung kami.
Semua hak.
Jadi mari kita melihat kedua jenis
gelung, untuk gelung.
Seterusnya kata kunci sementara, dalam kurungan, kita mempunyai satu perkara,
keadaan yang diperlukan untuk menjadi benar bagi
badan gelung untuk dilaksanakan.
Itu bermakna kita terpaksa untuk mencipta pembolehubah kaunter kami di luar
gelung dan ingat untuk kenaikan pada satu ketika
di dalam gelung.
Pengepala untuk kami untuk gelung, di sisi lain, mempunyai tiga
bahagian, masing-masing yang akan dipisahkan dengan koma bernoktah.
Di tempat ketiga pertama kita, kita boleh mengisytiharkan mana-mana kaunter atau penolong
pembolehubah yang kita ingin gunakan dalam gelung kami.
Dalam amalan, ini boleh menjadi benar-benar membantu.
Kami benar-benar tidak perlu yang berubah-ubah, saya, selepas beberapa ketika kami
gelung telah dijalankan, jadi kita benar-benar tidak perlu perlu mengisytiharkan
luar gelung.
Ketiga kedua akan menjadi keadaan yang mesti benar
untuk badan akan dilaksanakan sekali lagi, sama seperti
dalam gelung sementara kami.
Di tempat ketiga terakhir kami, kami boleh menjalankan kenyataan yang akan
dilaksanakan selepas setiap lelaran gelung, jadi kita tidak mempunyai
untuk membina ia ke dalam badan gelung.
Jadi, mari kita menulis untuk gelung yang mengira detik 5-1.
Kami akan bermula dengan kata kunci untuk.
Kita boleh mewujudkan pembolehubah kaunter pertama, yang kami akan
ditetapkan kepada 5 masa ini kerana kami mengira turun,
diikuti oleh koma bernoktah.
Berikut adalah keadaan kita, yang kita akan kembali ke sini.
Ketiga, kita ingin susutan pembolehubah kaunter kami selepas
setiap lelaran gelung.
Jadi, bukannya mengatakan i campur campur, kita akan berkata i tolak tolak.
Semua hak.
Jadi kita mahu badan gelung untuk menjalankan semasa i masih
lebih besar daripada 0.
Dalam badan gelung, mari kita mencetak nilai i.
Untuk berbuat demikian, kami akan menggunakan fungsi printf, menggunakan d%
placeholder.
Ingat, pemegang tempat yang akan digantikan dengan
nilai i.
Akhirnya, mari kita menambah satu kenyataan selepas kami untuk gelung.
Apabila kita menjalankan gelung ini, saya akan bermula pada 5,
jadi 5 akan dicetak.
Sekali i sampai kepada 0, keadaan kesinambungan, i
lebih besar daripada 0, tidak lagi akan memegang.
Jadi gelung kami akan berhenti melaksanakan, dan kita akan melihat
penyata selepas gelung.
Jadi mari kita menjalankan kod ini.
Pertama, kita akan menyusun
countdown.c dengan membuat undur.
Sekarang, kita boleh menjalankan kod ini. Undur /.
Dalam kedua-dua gelung sementara dan untuk gelung, kami kesinambungan
keadaan akan diperiksa sebelum badan
gelung dilaksanakan.
Ini bermaksud bahawa, jika keadaan kita tidak mulanya
benar, maka badan gelung kami tidak akan dijalankan.
Jadi ia kadang-kadang berguna untuk memeriksa keadaan selepas
badan gelung bukannya sebelum ia.
Jadi mari kita menulis gelung untuk meminta pengguna untuk nombor
sehingga nombor positif dibekalkan.
Jika pengguna input nombor negatif, kita akan mahu untuk bertanya kepada mereka
bagi nombor lain.
Jadi kita akan mahu ini segera untuk berada di dalam
badan luar gelung.
Walau bagaimanapun, apabila gelung dijalankan buat kali pertama, pengguna
telah tidak memberikan kita nombor lagi.
Supaya ia tidak masuk akal untuk memeriksa jika ia adalah positif.
Sebaliknya, kita akan mahu untuk memeriksa nombor selepas badan
gelung dijalankan.
Kita boleh melakukan ini dengan do gelung while.
Pertama, kita akan mewujudkan pemboleh ubah, n, yang akan memegang
input pengguna.
Sekarang kita akan menggunakan kata kunci do, diikuti oleh pendakap kerinting bahawa
akan bermula badan gelung kami.
Dalam badan, kita boleh mendorong pengguna untuk beberapa dengan
GetInt berfungsi.
Sekarang, kita akan mahu badan gelung ini untuk melaksanakan sekali lagi jika
pengguna menaip nombor negatif, jadi kita akan mengatakan manakala n
adalah kurang daripada 0.
Notis koma bernoktah di sini selepas kenyataan manakala.
Jadi mari kita menjalankan kod ini.
Pertama, kita akan menyusun ini dengan membuat positif.
Sekarang kita boleh menjalankan program. / Positif.
Jika kita memberikan program ini nombor negatif, seperti negatif
4, maka kita akan diminta sekali lagi untuk beberapa sejak
keadaan buat kami gelung while adalah benar.
Apabila kita memberikan nombor positif, seperti 8, maka
keadaan do kami gelung while tidak lagi akan menjadi kenyataan.
Jadi gelung tidak akan dilaksanakan lagi.
Dan itu bagi tiga jenis gelung kita akan menggunakan di C.
Nama saya adalah Tommy, dan ini adalah CS50.