(C++) Gelung. Gelung dengan parameter (untuk)


Gelung dalam pengaturcaraan
Bayangkan situasi di mana kita perlu memaparkan perkataan yang sama pada skrin, mari kita sebut perkataan "HELLO", 10 kali. Apa yang perlu kita lakukan?
Anda boleh mengambil dan menulis 10 kali cout << "HELLO";

Tetapi bagaimana jika anda tidak memerlukan 10 kali, tetapi 20, 30, 40 kali ?, dan jika 200 kali? Dalam kes ini, penyalinan akan mengambil masa yang sangat lama. Dan jika perlu untuk pengguna memilih berapa kali untuk memaparkan maklumat pada skrin? 

Untuk mengatasi tugas ini, kami akan menggunakan binaan khas yang dipanggil gelung.
 
Gelungadalah pembinaan algoritmik di mana urutan perintah tertentu diulang beberapa kali.< /div>
Dalam bahasa pengaturcaraan C++, terdapat dua jenis gelung: gelung pembolehubah (untuk) dan gelung bersyarat (while dan do...while)

Mari mulakan perkenalan kita dengan kitaran dari jenis pertama.
 
Gelung dengan pembolehubah (untuk)

Selalunya berlaku bahawa kita tahu bilangan ulangan beberapa tindakan, atau kita boleh mengira bilangan ulangan menggunakan data yang kita tahu. Sesetengah bahasa pengaturcaraan mempunyai perintah yang dalam bahasa Rusia berbunyi seperti ulang(bilangan kali), menunjukkan bilangan ulangan yang tepat dalam kurungan. 

Adalah menarik untuk melihat bagaimana kitaran ini berfungsi pada peringkat mesin:
1. sel memori tertentu diperuntukkan dalam ingatan dan bilangan ulangan ditulis kepadanya;
2. apabila atur cara melaksanakan badan gelung sekali, kandungan sel ini (kaunter) dikurangkan dengan satu;
3. pelaksanaan gelung tamat apabila sel ini sifar.

Tiada binaan sedemikian dalam bahasa pengaturcaraan C++, tetapi terdapat binaan for.  

Bentuk umum pernyataan gelung for adalah seperti berikut: untuk (/*ungkapan1*/; /*ungkapan2*/; /*ungkapan3*/ ) { /*satu pernyataan atau blok pernyataan - badan gelung*/; } Reka bentuk ini memerlukan kami:
1. memperuntukkan sel memori secara eksplisit yang akan menjadi pembilang dan menetapkan nilai awalnya;
2. keadaan telah ditulis di mana badan gelung akan dilaksanakan;
3. Tentukan bagaimana nilai dalam sel ini akan berubah.

Dalam bahagian praktikal, kami akan cuba memaparkan perkataan "Hello" 10 kali. Dalam tugasan berikut, kami akan menganalisis pembinaan ini dengan lebih terperinci.

gelung
for
Gelung untuk ialah satu cara untuk melangkah melalui tindakan berulang. Mari kita lihat dengan lebih dekat cara ia berfungsi.

Menjalankan untuk gelung terdiri daripada langkah berikut: 
1. menetapkan nilai awal pembolehubah gelung (pembilang);
2. menyemak syarat untuk meneruskan gelung;
3. pelaksanaan langkah (badan gelung); 
4. menukar nilai pembolehubah gelung.
Selanjutnya, langkah 2-4 diulang sehingga keadaan & nbsp; pada langkah ke-2 menjadi palsu. Sebaik sahaja syarat menjadi palsu, gelung ditamatkan dan pernyataan yang mengikuti pernyataan gelung for.
dilaksanakan.

Mari kita kembali kepada bentuk umum pernyataan gelung dan menganalisis semua bahagian dengan lebih terperinci.
untuk (/*ungkapan1*/; /*ungkapan2*/; /*ungkapan3*/ ) {       /*satu pernyataan atau blok pernyataan - badan gelung*/; }

Ungkapan 1 bertanggungjawab untuk menetapkan nilai awal pembolehubah gelung (pembilang), berakhir dengan koma bertitik

Sebagai contoh,

1)i=0;    // Berikan nilai awal bersamaan dengan sifar kepada pembolehubah gelung i.
                 // Dengan tatatanda ini, pembolehubah i mesti diisytiharkan sebelum gelung.

2) int i=0; //  Pembolehubah i boleh diisytiharkan terus dalam pengepala gelung, tetapi
                     // dalam kes ini, selepas gelung dipadamkan daripada ingatan

3) ;    // Tiada permulaan dan pengisytiharan pembolehubah kitaran sama sekali,
          //  dalam kes ini ia boleh ditakrifkan sebelum gelung.


Ungkapan 2 adalah keadaan kesinambungan gelung untuk yang diuji sebagai benar.

i<=10  // Gelung akan berjalan selagi pembolehubah i kurang daripada atau sama dengan 10. Syaratnya boleh apa sahaja.
 

Ungkapan 3 menukar nilai pembolehubah pembilang. Tanpa nilai ini, gelung akan dianggap tidak terhingga.

i++  // Pembolehubah akan meningkat sebanyak 1 dengan setiap langkah.
 

Jika terdapat satu pernyataan dalam badan gelung

Jika terdapat hanya satu pernyataan dalam badan gelung, maka kurungan boleh ditinggalkan.

Kitaran untuk -features

Terdapat berbilang penyataan yang dipisahkan dengan koma dalam setiap bahagian pengepala.
 
Contoh
untuk ( i = 0, x = 1.; i < 10; i += 2, x *= 0.1 ) { ... } Dalam kes ini, kami menggunakan dua pembolehubah yang akan berubah selepas pelaksanaan badan gelung - ini ialah pembolehubah i dan x. Pembolehubah i berubah dalam langkah 2: i += 2 ialah singkatan untuk i = i + 2. Pembolehubah x meningkat sebanyak 0.1 kali dengan setiap langkah x = x * 0.1, ringkasnya x *= 0.1.

Ulang N kali

Semua program dengan gelung for yang telah kami tulis setakat ini tidak boleh dipanggil universal. Kerana kita menetapkan sendiri bilangan ulangan badan gelung. Tetapi bagaimana jika bilangan ulangan bergantung pada beberapa nilai lain? Sebagai contoh, pengguna sendiri ingin menetapkan bilangan ulangan kitaran.
Apa yang perlu dilakukan dalam kes ini? Semuanya sangat mudah. Daripada nilai mula dan tamat angka, kita boleh menggunakan sebarang pembolehubah yang boleh dikira atau ditetapkan oleh pengguna.

Sebagai contoh, kita perlu memaparkan petak nombor daripada 1 hingga N, di mana nilai pembolehubah N dimasukkan daripada papan kekunci oleh pengguna.
Program ini akan kelihatan seperti ini:
  #include <iostream> menggunakan ruang nama std; utama() { int i,N; // i – pembolehubah gelung, N - nombor maksimum yang mana kita mengira kuasa dua cin>> N; untuk ( i = 1; i <= N; i ++) // gelung: untuk semua i dari 1 hingga N. Pembolehubah i akan mengambil nilai secara berurutan dari 1 hingga N { cout << "Nombor persegi "<<i<<" ialah" <<i*i<<"\n"; // Mengeluarkan kuasa dua nombor dalam format tertentu dan bergerak ke baris baharu } } Apabila memasuki gelung, pernyataan i = 1 dilaksanakan, dan kemudian pembolehubah i ditambah satu dengan setiap langkah (i ++ ). Gelung dilaksanakan manakala syarat i <= N adalah benar. Dalam badan gelung, satu-satunya pernyataan output mencetak nombor itu sendiri dan segi empat samanya pada skrin mengikut format yang ditentukan.
Untuk kuasa dua atau eksponen rendah yang lain, lebih baik menggunakan pendaraban.

Jalankan atur cara dan lihat hasil kerjanya dengan nilai berbeza bagi pembolehubah N.