Döngü için
For döngüsü , programlamada maksimum yineleme sayısının önceden belirtilebildiği bir kontrol yapısıdır .
Döngü elemanları
- Kontrol değişkeni : pratikte ortak kullanım tarafından dayatılan bir zorunluluk, i Iterator harfini bir kontrol değişkeni olarak veya iç içe döngüler durumunda ardıllarını kullanmaktır. Bununla birlikte, bu şifreli mektubun kullanımı, belki de ilk bakışta, kapsamlı kullanımı nedeniyle koda okunabilirlik eklemenin mükemmel bir yoludur. Yuvalanmış döngüler nadiren üç boyutu aştığından (basit bir üstel patlama meselesi için), i, j ve k harfleri genellikle bu kullanıma dahil olan harflerdir. C'de, başlatma (isteğe bağlı) ile birlikte ifadenin ilk parametresinde tanımlanır.
- Kontrol değişkeninin başlatılması : sözde dilde açık hale getirilmesi istenir (bu bölüm := InitialValue ), ancak C gibi diğer daha izin verilen diller zorunlu bir şekilde gerektirmez. Ancak, kod okunabilirliği için döngüde başlatılmayan kontrol değişkenlerinin kullanılması önerilmez. C'de, kontrol değişkeni ile birlikte döngünün ilk parametresinde tanımlanır.
- Kontrol koşulu : sözde dilde, kontrol değişkeninin alabileceği son değerle temsil edilir ( A FinalValue bölümü ). C'de bu ikinci parametredir ve herhangi bir koşul olabilir (kontrol değişkeni gerekli bile değildir, ancak yine de bu iyi uygulama olarak kabul edilmez).
- Artış : sözde dilde 1 değeri varsayılan olarak alınır, ancak PASO = ValorPaso herhangi bir tamsayı cümlesi aracılığıyla açık hale getirilebilir (tamsayıyı iyi okuyun, yani teknik olarak azaltabiliriz). C'de son parametredir.
- Gövde : Her yinelemede yapılacak şeydir, bir veya daha fazla talimat olabilir. Sözde dilde, kontrol değişkeninin değerini değiştirememe kısıtlaması vardır; bu C'de gerekli değildir, ancak iyi uygulama olarak kabul edilmez.
kullanır
Ana kullanımı vektörlere yöneliktir , dizine göre bulunan verileri değiştirme, ekleme, silme veya bunlara bakma. İkincisi için, vektörün minimum koşulu, sipariş edilmesi gerektiğidir, çünkü var olmayan verileri okumak için bir girişimde bulunulursa, bu bir programlama hatası oluşturur .
Sözde dilde
FOR döngüsü ile WHILE AND REPEAT döngüleri arasındaki temel fark, döngünün kaç kez yineleneceğinin döngünün başında belirlenebilmesidir, bu da genellikle derleyiciler tarafından kod optimizasyonuna yol açabilir. Koşullar, döngülerle birlikte, yapılandırılmış programlamanın temellerini oluşturur ve bunların kullanımı, bir koşulun değerine bağlı olarak bir sonraki satırı yürüten veya yürütmeyen bir montaj dili ifadesinin bir evrimidir.
FOR döngüsü, programlamada en yaygın kullanılan döngü haline geldi, çünkü dillerin evrimi ile çoğu son koşul
Söylemek aynıdır:
i=0 için NumberRecords(tablo) - 1, ADIM = 1 SonrakiKayıt(tablo) DoSomething(CurrentItem(tablo)) SON İÇİN
Diğer bir yaygın kullanım, iki veya daha fazla boyuttaki vektörleri çaprazlamak için FOR döngülerini kullanmaktır; bu durumda bu yinelemeler iç içedir.
Sahte DİL
Vektör a[3][4]][2]. // Toplamda 3 boyutlu ve 24 elemanlı bir vektör belirtiyoruz.
i İÇİN:= 0'DAN 2'YE DO
J İÇİN:= 0'DAN 3'E DOĞRU
k İÇİN:= 0'DAN 1'E DO
DoSomething(a[i][j][k])
SON İÇİN
SON İÇİN
SON İÇİN
Sözde kod örneği
ControlVariable için := StartValue TO EndValue, STEP = Artış
Talimatlar SON
burada ControlVariable , StartValue , EndValue ve Step tamsayılardır. Gövdedeki deyim(ler) (EndValue - InitialValue + 1) kez yürütülür, yani InitialValue'dan EndValue'ye geçer.
C++'da örnek
#include <iostream>
#include <cone.h>
ad alanı std kullanarak;
intmain(){
int vektör[10];
for(int i=0; i<10; i++){
vektör[i] = ben;
cout<<i<<endl;
}
sistem ("DURAKLAT");
0 döndür;
}
for tanımında , i kontrol değişkeninin 0 değerine başlatıldığını, ardından döngüyü tamamlamak için yürütülmesi sırasında yanlış olması gereken kontrol koşulunun verildiğini görüyoruz; ve son olarak, bir birim içinde artırıcıya sahibiz.
Örneğin, i < 11 koyduğumuz koşulda, o zaman for döngüsü [0...10] öğesinden yürütülecektir, bu, öğe vektörüne[10] erişmeye çalışırken bir hata üretecektir, çünkü vektör (tanım gereği ) [0..(n-1)]'den gider.
Parantez içindeki bileşenlerden herhangi biri atlanabilir, ancak noktalı virgül ayırıcılar her zaman görünmelidir. Sonuç sonsuz bir döngüdür.
Yukarıdaki örnek sözlükte yazılmıştır
görev
{
vektör[10] nesneler, ben nicelikler
0 ile 9 arasında değişen i
i'yi vektöre kopyala[i]
}
Her Döngü İçin
Bu döngü, bazı dillerdeki For döngüsü kavramının geliştirilmiş halidir. Tekrarlayan veri yapılarını daha basit ve daha çevik bir şekilde geçmek için kullanılır. For Her döngüsü genel olarak (sözde dilde) aşağıdaki gibi tanımlanabilir:
IN set DO'nun HER öğesi İÇİN Gövde HER BİRİ İÇİN SON
- Element : döngünün gövdesinde yinelenen öğeyi alan değişkenin veya nesnenin adıdır.
- Veri Türü : Yinelenecek nesnenin ait olduğu değişkenin veya sınıfın türüdür.
- Set : üzerinde yinelemek istediğiniz veri yapısıdır. En tipik kullanım, Koleksiyon türündeki vektörler veya -nesne yönelimli programlamada- sınıflardır.
- Gövde : Her yinelemede yapılacak şeydir, bir veya daha fazla talimat olabilir. Bu konuda herhangi bir yükümlülük getirilmese de, en yaygın olanı bu Vücutta yinelenen öğe üzerinde bazı işlemlerin olmasıdır.
Bilgisayarların yararlanılabilecek önemli özelliklerinden biri, komut dizilerinin yürütülmesini yüksek hızda ve yüksek derecede güvenilirlikle tekrarlama yetenekleridir. Bu amaçlar için, yinelemeli kontrol yapıları programlama dillerinde tam olarak tanımlanır. Bu yapıların amacı, bir talimat dizisinin tekrarının ifade edilmesini sağlamaktır, bu yapılara döngü, döngü veya döngü denir.
Özet 1 Yinelemeli Kontrol Yapıları 2 while deyimi 3 do/while deyimi 4 For kontrol yapısı 5 Örnek Olay 5.1 GCF() 5.2 QtyDigits() 5.3 Factorial() 6 İç İçe Döngüler 7 Kaynaklar Hayatta Yinelemeli Kontrol Yapıları Günlük olarak, Birçok kez tekrarlanabilen belirli bir dizi adımın gerçekleştirilmesiyle sıklıkla çözülen durumlar vardır, örneğin:
Yemek bitmeden yemek için takip ettiğimiz süreç. Gerekli miktar ödenene kadar madeni para ekleme işlemi. Telefonla aramak için yaptığımız işlemler iletişim sağlanmazken. Görüldüğü gibi bunlar günlük olarak yapılan algoritmalardır, ancak bazı adımlarının yürütülmesinin, belirlenen hedefe ulaşılmadığı sürece birçok kez tekrarlanabilmesi özelliğine sahiptir. Bu tür bir algoritma, yinelemeli veya tekrarlayan algoritmalar olarak bilinir. C#'ta while, do/while ve for deyimleri yinelemeleri, döngüleri veya döngüleri yürütmenize olanak tanır. Her durumda, değerlendirilen koşul doğruyken bir talimat bloğu yürütülür. 3 komuttan herhangi birinin, bir dizi adımı birden çok kez yürütmek olan aynı amacı yerine getirdiği vurgulanmıştır.
while ifadesi while ifadesi aşağıdaki sözdizimine sahiptir:
whileStatement.JPG
İfadenin semantiği aşağıdaki gibidir:
<koşul>. Bir Boole ifadesi ile temsil edilir ve yerine getirildiği sürece döngü yürütülür. [Yönerge Bloğu] Komut bloğu, bir veya birkaç komuttan oluşabilir ve döngünün her yinelemesinde yürütülecek adımlar kümesidir. Daha iyi anlaşılması için temsili bir aktivite diyagramında gösterilmiştir.
DiyagramWhile.JPG
Bu kontrol yapısı, koşul doğruyken [Talimat Bloğu]'nun yinelenmesine veya yinelenmesine izin verir veya başka bir deyişle, koşul yanlış olduğunda bu yinelemeler sona erer ve ardından while'dan sonraki komut yürütülebilir.
Bu talimatta koşulun döngünün başında değerlendirildiğini belirtmek geçerlidir, bu nedenle koşul ilk kez değerlendirilirse yanlıştır, döngü gerçekleştirilmeyecektir.
do/while ifadesi do/while kontrol yapısı, koşulun [Deyim Bloğu] yürütüldükten sonra ilk kez değerlendirildiği başka bir yineleme ifadesidir ve aşağıdaki sözdizimine sahiptir:
DoWhileStatement.JPG
Semantiği while ifadesininkiyle aynıdır ve bir etkinlik diyagramındaki gösterimi aşağıdaki gibidir:
DiyagramDoWhile.JPG
Bu tekrarlı yapıda, koşul en son değerlendirildiği için deyim bloğu her zaman en az bir kez yürütülür. Değerlendirme gerçekleştirildikten sonra, sonuç doğruysa [Talimat Bloğu] yeniden yürütülür, aksi takdirde döngüden çıkılarak aşağıdaki komutlar yürütülür. Bu yöntemin işlevselliği while örneğindekiyle aynı olacaktır. Tek fark, döngünün kontrol edilme şeklidir. Uygulamada, while ifadesinin do – while ifadesinden daha sık kullanıldığını göreceksiniz. Bir talimatı diğerine tercih etmek kişisel bir seçimdir. Koşullu döngülerde akılda tutulması gereken çok önemli bir husus, talimat bloğu içinde en az bir komut bloğu tasarlama ihtiyacıdır; bu, bir şekilde Boole ifadesinin sonucunu - bir noktada - değiştirir. Açıklama, döngüye girildiğinde bu talimat olmasaydı, asla bitmeyeceği ve böylece sonsuz bir döngüye düşeceği gerçeğiyle verilir.
Şimdiye kadar gördüğümüz yinelemeli süreçler için kontrol yapısı bir koşulla bitiyor. Birçok durumda yinelemeler belirli sayıda yapılır, birçok yazar sayarak döngüler olarak adlandırır, çünkü tekrarlanan işlemin kaç kez yapılacağı önceden bilinir. Bu tür yinelemede, işlemin kaç kez tekrarlandığını takip etmek için her zaman bir değişkene ihtiyaç duyulur, bu nedenle bunlar kontrol değişkenli döngüler olarak da bilinir. Çoğu programlama dilinde en iyi bilinen ve en çok kullanılan döngülerden biri, genellikle bir sayaç veya kontrol değişkeni tarafından kontrol edilen ve aşağıdaki sözdizimine sahip olan for ifadesidir:
TalimatFor.JPG
İfadenin semantiği aşağıdaki gibidir:
<talimatlar 1>. Döngünün başında yalnızca bir kez yürütülür, daha önce belirtildiği gibi yalnızca bir kez yürütüldüğünden başlatmalar ve değişken bildirimleri genellikle gerçekleştirilir. Aynı anda birden fazla talimat gerçekleştirmek veya yürütmek istiyorsanız, bu talimatlar virgül (".") ile ayrılmalıdır. <ifade>. Her yinelemede değerlendirilir ve döndürdüğü değere bağlı olarak, döngünün devam edip etmemesine (ifade değeri doğru) veya çalışmamasına (yanlış) bağlı olacaktır. Bu kısma hiçbir şey yerleştirilmezse, döngünün ifadenin değerini doğru olarak alacağına, dolayısıyla prensipte döngünün sonsuz olarak tekrar edilebileceğine dikkat edin. <talimatlar 2>. Söz konusu for döngüsüne ait tüm talimatların yürütülmesinin sonunda her döngüde her zaman yürütülür. Genellikle kontrol değişkenleri için bazı güncellemeler içerebilir. <talimat 1>'e benzer şekilde, şu anda birden fazla talimat yürütmek istiyorsanız, bunlar virgülle ayrılmalıdır. for ifadesini oluşturan her terimi noktalı virgül (;) kullanarak ayırmanın zorunlu olduğunu unutmayın, aksi takdirde derleyici anlamsal bir tür hatası görüntüler. <Yönerge 1>'in başlangıçta yalnızca bir kez yürütüldüğünü, <komut 2>'nin genellikle kontrol değişkenini değiştirmek için kullanılan olduğunu, ancak döngüde de değiştirilebilir olduğunu ve <ifade>'nin garanti eden olduğunu yineleyin. döngünün sonluluğu, <ifade> değerlendirildiği ve true değerini aldığı sürece for yürütülür.
Ayrıca
- vektörler
- C
- Programlama dili
- Kontrol Yapıları
- Döngü (programlama)
- döngü sırasında
- tekrar döngüsü
- sonsuz döngü
- Yapılandırılmış program teoremi
- Yapılandırılmış Programlama