lamont Posted November 3, 2014 Share Posted November 3, 2014 (edited) arkadaşlar for ile yaptım iç içe döngü yaptım aynı döngüyü while yapalım dedim lakin bir kaç sorum olacak i ve j degişkenleri j döngüsü içinde tanımlanmış ve önce j önce artırmış parantezin dışında ise i degişekeni artırmış ve j=0 vermiş bu kısımları açıklayabilirmisniz arkadaşlar tam kavrayamadım konuyu birde arkadaşlar mesala if eşitlerken j5 kadar artırıyor 5 tane dizimizde string var ama 0,1,2,3,4 şeklinde j neden 5 den sonra sıfırlanıyor 0,1,2,3,4,5 şeklindemi artırıyor ? private void button1_Click(object sender, EventArgs e) { string[] dizi1 = { "a", "b", "c", "d", "e" }; string[] dizi2 = { "a", "c", "k", "b", "d" }; int i=0, j=0; while (i < dizi1.Length) { while (j < dizi2.Length) { if (dizi1[i] == dizi2[j]) listBox1.Items.Add(dizi1[i].ToString()); j++; } i++; j = 0; } } } } Edited November 3, 2014 by lamont Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted November 3, 2014 Editor Share Posted November 3, 2014 her seferinde ikinci while bittiğinde sıfırdan başlaması lazım o yüzden j yi sıfırlıyor. içerdeki j nin artması ise çark her döndüğünde içindeki elemanların tamamına erişmek için artırması lazım. i ise birinci while döngüsünün yani çark her döndüğünde 1 artması lazım o yüzden artırmış. Quote Link to comment Share on other sites More sharing options...
TeYyArEe Posted November 3, 2014 Share Posted November 3, 2014 Anlaşılmayacak bir şey yok ortada. Ama yinede açıklayayım. Öncelik ile i ve j değişkenleri döngü içerisinde tanımlanmamış. Bu kısımda kodu anlamakta yanlışınız var. int i=0 ve j=0 ile döngü dışarısında tanımlanmış durumda. Bu tarz iç içe döngülerde, ilk olarak içerideki J döngüsü arttırılır, nedeni ise if (dizi1[i] == dizi2[j]) listBox1.Items.Add(dizi1[i].ToString()); satırındaki karşılaştırma, dizi1 isimli dizinin 0. elemanı ile dizi2 isimli dizinin elemanları karşılaştırılacak ve elemanlar aynı ise listbox'a eklenecek. Yani süreç su şekilde ilerleyecektir. i döngüsü = 0 ve j döngüsü = 0 ve j döngüsü artış içerisinde dizi1 eleman 0 eşitmi dizi2 eleman 0 dizi1 eleman 0 eşitmi dizi2 eleman 1 dizi1 eleman 0 eşitmi dizi2 eleman 2 dizi1 eleman 0 eşitmi dizi2 eleman 3 dizi1 eleman 0 eşitmi dizi2 eleman 4 J döngüsü sonu. Daha sonra i döngüsüne geri dönerek değer 1 olarak atanacak ve dizi1 isimli dizinin 1 indisli elemanı dizi2 isimli dizinin elemanları ile karşılaştırılacak. Ancak şu anda J değeri 4. çünkü yukarıdaki döngüde sadece j değeri sürekli arttırıldı. Bu durumda i döngüsü içerisinde j döngüsü için değerin 0'lanması gerekli ki dizi2 için ilk eleman olan 0 indisine geri dönülsün, aksi halde dizinin 5. indisi olmadığı için eşitlik sona erecek ve işlem bitecektir. J değeri her i artışında sıfırlanarak dizi2 için yeniden karşılaştırma işlemi ile döngü devam edecektir. Ta ki i=4 ve j=4 olana kadar bu böyle devam edecektir. Sanırım anlaşılır şekilde olmuştur. Haydi kolay gele ! Quote Link to comment Share on other sites More sharing options...
KintaRo Posted November 3, 2014 Share Posted November 3, 2014 Hangi programlama dili ile ilgili başlık açıyorsanız, adını konu başlığının önüne ekleyin ki, ileride olası bir bölüm açma durumunda konuları taşımamız, ve insanların bulması kolay olsun Quote Link to comment Share on other sites More sharing options...
lamont Posted November 3, 2014 Author Share Posted November 3, 2014 teyyare j de i de 5 kadar kadar artırıyor ben adım adım çalıştırdım j de i de 5 kadar artırıyor bende 0,1,2,3,4 bu şekilde diye biliyorum ama adım adım programı çalıştırdıgımda 5 kadar sayıyor o zaman 0,1,2,3,4,5 şeklinde oluyor anlayamadım ? Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted November 3, 2014 Editor Share Posted November 3, 2014 hayır 5 olmaz yani değer olarka 5 i atar sonra bakarki 5. eleman yok döngüden çıkar yani onun 5 olmasına bakma. Quote Link to comment Share on other sites More sharing options...
TeYyArEe Posted November 3, 2014 Share Posted November 3, 2014 Dizi eleman sayısından yukarıda bir değer alacak ki i<dizi.length eşitliğinin olup olmadığını kontrol edip, döngünün sonlanmasına izin versin. Haydi kolay gele ! Quote Link to comment Share on other sites More sharing options...
lamont Posted November 3, 2014 Author Share Posted November 3, 2014 Arkadaşlar verdigniz bilgiler için çok tşk ederim Allah razı olsun ... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.