Java'da, hemen hemen her dilde olduğu gibiprogramlamada, belirli bir kod parçasının tekrarlanmasını ya da adlandırıldığı gibi döngüleri tekrarlayan araçlar vardır. Java döngüleri, varyasyonları için olduğu gibi ve süresi gibi operatörler tarafından da temsil edilir. Kural olarak, belirli elemanları bulmak ve bunlarla daha fazla işlem yapmak için tek boyutlu ve çok boyutlu dizilerden ve yinelenebilir veri yapılarından (koleksiyonlar dahil) geçmek için döngüler kullanılır. Ancak, Java döngüsü gibi bir aracı kullanmanın tek yolu bu değildir. Kullanım durumları incelendiklerinde sağlanacaktır.
Java’daki temel döngü operatörüiken. Gövdesinde bulunan bir kod parçası, gerçeğin mantıksal değerini sağladıktan sonra parantez içindeki ifadenin koşulu yerine kadar tekrarlanacaktır. While ifadesinin genel şekli şöyledir:
while (koşul) {
// döngü gövdesi
}
Mantıksal koşulun değeri doğru olmaz durmaz, döngü gövdesinde bulunan kodun yürütülmesi durdurulacak ve kontrol hemen sonra satıra aktarılacaktır.
Açıklık için, aşağıdaki şekilde sunulan örneği analiz edelim:
Beyan edilen değişken sayısı başlangıçtadeğer 1. Sonra operatörün adından sonra parantez içine alınmış mantıksal bir ifade görüyoruz. Doğru olacak, yani. count değişkeninin değeri 10'a eşit veya ondan küçük olana kadar true değerine dönün. Döngünün gövdesinde, her geçişte (yineleme), değişkenin değeri 1 artar ve konsol ekranında görüntülenir. Değişkenin değeri 11'e ulaştığında, döngünün çalışmayı durdurduğunu lütfen unutmayın.
Count değişkeninin değeri başlangıçta 11'e eşit olsaydı, döngü koşulu yanlış olur ve program vücuduna bile girmezdi.
Java sözdiziminin izin verdiğini belirtmek gerekir.bir beden ifadesi olmadan while ifadesi kullanın. Bir örnek veriyoruz. İki değişken i = 100 ve j = 200'ümüz olduğunu varsayalım, aritmetik ortalamalarını programlı olarak hesaplama göreviyle karşı karşıyayız - bunun için “içi boş” kullanabiliriz:
(++ i <- j);
Sonuç olarak, iki değişkenden herhangi birinin değeri başlangıç değerlerinin ortalamasına eşit olacaktır. Gördüğünüz gibi, döngü beden olmadan mükemmel çalıştı ve tüm gerekli eylemleri geleneksel terimlerle gerçekleştirdi.
Önceki örneklerde, koşullu ifadebaşlangıçta false döndürülürse, program yürütme döngü gövdesini yoksayar ve daha da ileri gider. Bununla birlikte, koşullu ifadenin gerçeğinden bağımsız olarak, döngü gövdesinde bulunan kodun yürütülmesinin en az bir kez zorunlu olduğu durumlar ortaya çıkar. Başka bir deyişle, koşullu bir ifadenin gerçekliğini kontrol etmek başlangıçta değil, döngünün sonunda gereklidir. Bu işlevsellik, do-while adı verilen bir çeşit while döngüsü sağlayabilir. Aşağıdaki forma sahiptir:
yapmak {
// döngü gövdesi
} süre (koşul);
Gördüğümüz gibi, ilk önce döngü gövdesi yürütmeye gider ve ancak o zaman durumun gerçekliği kontrol edilir - ve böylece her yineleme.
Yukarıdaki kod böyle bir işe yarayacaknormal süre ile aynı. Bununla birlikte, count değişkenini 11 olarak ayarlarsak, döngü ifadenin operatörün ifadenin gerçekliğini doğrulayabilmesi için bir kez de yürütülür.
For döngüsü çok yönlü veetkili dil formu. Java SDK'sının beşinci sürümünden önce, for ifadesinin yalnızca bir geleneksel formu vardı ve yenisi göründükten sonra - her biri için. Bu bölümde, operatörün geleneksel formunu tanıyacağız. Java döngüsü için şöyle görünür:
Kontrol vücuttaki koda aktarılmadan öncedöngü, bir sayaç olarak hareket eden i değişkeninin başlatılması ilk önce gerçekleştirilir. Daha sonra, sayacın belirli bir değerle karşılaştırıldığı koşullu bir ifade kontrol edilir ve eğer doğruysa, döngünün gövdesi yürütülür. Daha sonra sayaç değeri önceden belirlenmiş bir adıma geçer ve koşullu ifade tekrar koşul kontrol edilir ve bu şekilde durum yanlış hale gelene kadar devam eder. Aşağıdaki akış şeması, döngünün tüm aşamalarını göstermektedir.
Daha iyi anlamak için Java döngüsünün nasıl çalıştığına dair bir örnek:
Bir sayaç kullanıldığını görüyoruzloopVal değişkeni. Döngünün her yinelemesinden sonra değeri 1 artar ve bu 11'e ulaşıncaya kadar olur. Kontrol değişkeninin de for ifadesinin dışında da bildirilebileceğini, ancak bu değişkeni dışında bir yerde kullanmayacaksanız unutmayın. bir döngüde, doğrudan ifadede bildirilmesi önerilir. İfadenin kendisinde bildirilen değişkenin bu döngü içinde kapsamı olduğunu unutmayın.
Beyan etmek istediğiniz durumlar varbirkaç döngü kontrol değişkeni. Java döngüsü için virgülle ayrılmış iki veya daha fazla değişken belirtmenize ve bunu hem başlatma hem de yineleme sırasında yapmanıza olanak tanır. Böyle bir operatör aşağıdaki forma sahip olacaktır:
için (int i = 1, int j = 10; i Her yinelemede, i değişkeninin değeri 1 artacak ve j değişkeninin değeri 1 azalacaktır. İ, j'den büyük veya ona eşit olana kadar yinelemeler yapılacaktır. For döngüsü oldukça esnektirtasarım, çünkü parçalarının üçü de (başlatma, koşul ve artış / azalma) başka amaçlar için kullanılabilir. Örneğin, bir kontrol değişkeni ile koşullu bir ifade yerine, herhangi bir mantıksal değişkeni kullanabilirsiniz. boole çıkışı = yanlış; for (int i = 0 ;! çıkış; ++ i) { exit = true; } Yukarıdaki örnekte, çalışmanın nasıldöngü i kontrol değişkeninden tamamen bağımsızdır ve yineleme sayısı yalnızca çıkış değişkeninin ne zaman gerçekleştiğine bağlıdır. Dahası, kontrol değişkeni döngüden tamamen kaldırılabilir ve bu işlemini hiçbir şekilde etkilemez: for (;! Exit;) {}. Bu, en mantıklı programlama yolu olmamasına rağmen, bazen yararlı olabilir. Ana şey, değişkenin döngüden çıkmak için gerekli değeri sonsuz hale getirmeyeceği bir durum sağlamaktır. Java döngüsü için böyle ilan edilebiliryol: (;;) {} için. Bu, özel kesme koşullarına sahip sonsuz bir döngüye tipik bir örnektir. Bu tür döngüleri nasıl keseceğiniz hakkında, biraz sonra konuşacağız. Foreach Java döngüsü her zamanbir dizinin veya herhangi bir veri yapısının elemanları üzerinde sırayla yineleme ve bunlar üzerinde belirli tekrarlanan işlemler gerçekleştirme. For ifadesinin bu formunun bir örneği aşağıda sunulmuştur:For ifadesini kullanmanın özellikleri
Her döngü için
Yinelemeli bir değişken olarak bildirildiname ve daha önce bildirilen ad dizeleri, operatörün ikinci argümanı gibi davranır. Değişken adı, tüm öğeleri alınana kadar dizinin her öğesinin değerlerini dönüşümlü olarak alır. Değişkenin türünün, dizide saklanan öğelerin türüyle uyumlu olması gerektiğine dikkat edilmelidir. Ayrıca, name değişkeni salt okunurdur ve değiştirmeye çalışmak dizideki öğenin kendisinde bir değişikliğe yol açmaz.
Üç döngü iptal operatörü vardır:kır, geri dön ve devam et. İlk ikisi, döngünün çalışmasını tamamen kesebilir ve devam edebilir, yalnızca geçerli yinelemenin çalışmasını kesebilir. Kodunuzda kasıtlı olarak sonsuz bir Java döngüsü kullanıyorsanız, bu işleçlerin içinde bulunması gerekir. Basit bir mola örneği düşünün:
Bu ifade için 11 yineleme olmasına rağmen, sadece 8 yürütülür, çünkü sayaç i 7 olduğunda, vücudunda bir kesme ifadesi olan bir koşul çalışır.
Return deyimi, yalnızca Java döngüsünden bir çıkış sağlamakla kalmaz, aynı zamanda bu döngünün yerleştirildiği yönteme de benzer şekilde davranır.
Kesinti kesintileri olduğunu unutmayınsadece doğrudan vücutta bulunduğu döngü, yani. iç içe bir döngüde kullanırsanız, dış döngü çalışmaz. Bunu yapmak için, break ifadesi uygar bir goto formu olarak kullanılabilir.
Bu düzenekte bu operatör,yalnızca döngülerden değil, aynı zamanda herhangi bir kod bloğundan bir çıkış düzenlemenize izin veren, etiketli bir paket. Etiket, uygun şekilde adlandırılmış bir tanımlayıcıdır ve bunu iki nokta üst üste izler. Etiket, işaretli kod bloğunun başında bildirilir. İşaretli bloğun yürütülmesini kesmek için, doğru yerde şunları bildirmeniz gerekir: break label_name. Aşağıdaki şekildeki örneği düşünün:
Kodda Bir etiket adıyla üç blok bildirilir,Sırasıyla İki ve Üç. İki etiketli break deyimi her üç bloğa da iç içe geçmiştir, ancak tetiklendiğinde program Üç ve İki bloktan çıkacak ve Bir blokta yürütülmeye devam edecektir. yani konsolda iki mesaj göreceğiz: Üç ve Bir.
Java'daki döngüler kavramına aşina olduk,ana while ve for ifadeleri, bunların yanı sıra do-while ve her form için. Daha iyi bir anlayış için, bu operatörleri çeşitli şekillerde kullanarak egzersizleri yapmanızı ve bunları kesmenin ve bir bloktan diğerine geçmenin çeşitli yollarını yapmanızı öneririz.