6.3. Diziler üçün Ətraflı Döngə (Hər biri üçün)

Göndərildi: 08.09.2021
Məqalənin müəllifi Adəm Quliyev

Hər bir döngə üçün təkmilləşdirilmişbir döngəvə ya a adlandırılan xüsusi bir döngə növü var. Bu döngəni yazmaq daha asandır, çünki indeks dəyişənini və ya [] istifadəsini nəzərdə tutmur. Ardıcıl olaraq serialdakı hər bir dəyərə təyin olunan bir dəyişən qurur.

Hər biri üçün bir döngə qurmaq üçün, növün dizidəkielementlərin növü olduğu üçün (type dəyişən: arrayname)istifadə edin və onu "arrayname'deki hər bir dəyişən dəyər üçün" olaraq oxuyun. Aşağıdakı kimi siyahıları olan AP CSP Pseudocode və ya App Inventor -da oxşar bir döngə istifadə etmiş ola bilərsiniz.

Şəkil 1: Hər biri üçün App Inventor, AP CSP və Java -nı müqayisə etmək ¶

Aşağıdakı Java -da int və String aralığından keçən nümunələrə baxın. Döngə dəyişəninin növünün dizinin tipinə diqqət yetirin.

Mümkün olduğunda hər döngə üçün inkişaf etdirilmiş dizilərdən istifadə edin, çünki səhvləri azaldır. Bir dizinin bütün elementlərindən keçmək lazım olduqda və indekslərini bilməyinizə ehtiyac yoxdursa və dəyərlərini dəyişdirməyiniz lazım olduqda istifadə edə bilərsiniz. Dizidəki ilk maddə ilə başlayır (0 indeksində olan) və sıradakı son elementə qədər davam edir. Bu növ döngə yalnız sonrakı bölmədə görəcəyimiz ArrayLists kimi digər elementlər kolleksiyaları ilə birlikdə istifadə edilə bilər.

Kodlaşdırma məşqi

Aşağıdakı kodu sınayın. İnt dizisi və String dizisi olan hər bir döngə üçün diqqət yetirin. Dizilərə başqa bir yüksək bal və başqa bir ad əlavə edin və yenidən işləyin.

Kodlaşdırma məşqi

Arraydakı cüt ədədləri hər bir döngə üçün inkişaf etdirilmiş olaraq yazan loop üçün aşağıdakıları yenidən yazın. Çalışdığından əmin olun!

6.3.1. Foreach Loop Məhdudiyyətləri

Dizidəki bütün elementləri artıran bir döngə olsaydı nə olardı. Bu, hər biri üçün inkişaf etmiş bir döngə ilə işləyəcəkmi? Təəssüf ki, yox! Çünki yalnız döngədəki dəyişən dəyişir, həqiqi massiv dəyərləri deyil. Array elementlərini dəyişdirmək üçün indeksli bir döngəyə ehtiyacımız olacaq. CodeLens düyməsini basaraq aşağıdakı Aktiv Kodda və ya Java görselleştiricisində sınayın və niyə işləmədiyini görmək üçün kodu keçin.

Kodlaşdırma məşqi

Aşağıdakı hər bir döngə, serialdakı dəyərləri dəyişə bilməz, çünki yalnız döngə dəyişən dəyəri dəyişəcək. Bunun niyə olduğunu görmək üçün CodeLens düyməsini istifadə edin. Ardından, döngəni dizi dəyərlərini dəyişdirmək üçün indekslənmiş döngəyə çevirin.

Hər bir döngə üçün gücləndirilmiş vəziyyət bütün hallarda istifadə edilə bilməz. Yalnız hər bir döngə üçün dəyərləri dəyişdirmədən bir sıra bütündəyərləri keçmək istədiyiniz zaman istifadə edin .

İndeksə ehtiyacınız varsa, hər döngə üçün istifadə etməyin.

Dizidəki dəyərləri dəyişdirmək lazımdırsa, hər döngə üçün istifadə etməyin.

Dizinin yalnız bir hissəsini və ya fərqli bir qaydada keçmək istəyirsinizsə, hər döngə üçün istifadə etməyin.

Anladığınızı yoxlayın

6-3-4: For loop əvəzinə hər biri üçün təkmilləşdirilmiş bir döngə istifadə etməyinizin bəzi səbəbləri nələrdir?

6-3-5: Aşağıdakı kod seqmentinin çıxışı nədir?

Foreach döngəsi dizi elementlərini dəyişdirə bilmədiyi üçün sıra dəyişmir.

Unutmayın ki, foreach döngəsi massiv elementlərini dəyişə bilməz, eyni zamanda əlavə deyil vurma da istifadə edir.

Unutmayın ki, foreach döngəsi massiv elementlərini dəyişə bilməz. Orijinal serial dəyərləri deyil, yalnız num dəyişəni ikiqat artırılacaq.

Kod tərtib edilməyəcək.

Bu kod tərtib ediləcək.

6.3.2. Foreach Loop Alqoritmləri

Budur, sinifdə özəl bir nümunə dəyişən kimi bir sıra olan və hər bir döngədən istifadə edən bir ümumi metod ortalaması təmin edən obyekt yönümlü bir nümunə. Bu kodu keçmək üçün Java görselleştiricisini və ya Kod Lens düyməsini istifadə edə bilərsiniz.

Aşağıdakı kodu sınayın.

Anladığınızı yoxlayın

Aşağıdakı metod, valsadlı bir tamsayı dizisindəki ən böyük dəyəri qaytarmaq üçün düzgün koda malikdir (cari obyektin nümunə dəyişənidir), lakin kod qarışıqdır. Blokları soldan sağa doğru sıraya sürükləyin və onları da düzgün şəkildə daxil edin. Bloklardan birinin səhv qaydada olub -olmadığını və ya düzgün girintisiz olduğunu söyləyəcəksiniz.

Java Visualizer -də nə etdiyini görmək üçün düzgün kodu keçmək istəyirsinizsə, aşağıdakı Java görselleştirici bağlantısını vurun.

Anladığınızı yoxlayın

6-3-8: Arrayın tam ədədlər və hədəfin tam ədəd olduğunu nəzərə alsaq, aşağıdakı kod seqmentinin doğruya dönəcəyi şərtləri aşağıdakılardan daha yaxşı təsvir edir?

6.3.3. Proqramlaşdırma Çağırışı: SpellChecker 2¶

Keçən dərsdə Orfoqrafiya Denetçiliyi Çağırışında istifadə etdiyiniz imla yoxlama metodunu kopyalayın. İndekslənmiş bir döngü əvəzinə hər bir inkişaf etmiş bir döngə istifadə etmək üçün metodu yenidən yazın. İsteğe bağlı printStartsWith (firstLetters) metodunu etdinizsə, bunu da yenidən yazın. Tam lüğətə sahib olmaq üçün repl.it kodunu istifadə edə bilərsiniz.

Sözü parametr olaraq götürən və sözlər sırasındadırsa doğru olan hər bir inkişaf etmiş döngədən istifadə edərək yazım yoxlama () metodu yazın. Tapılmadığı təqdirdə saxta qaytarın.

6.3.4. Xülasə¶

An loop üçün inkişaf etmiş, həm də adlı Hər bir loop üçünbir index dəyişən istifadə etmədən bir sıra vasitəsilə loop üçün istifadə edilə bilər.

Təkmilləşdirilmiş döngə başlığı, hər bir dəyəri dizidə saxlayan inkişaf etmiş döngə dəyişənləri olaraq adlandırılan bir dəyişəndən ibarətdir.

İnkişaf etmiş döngənin hər bir təkrarlanması üçün, inkişaf etmiş döngə dəyişəninə indeksindən istifadə etmədən bir elementin bir nüsxəsi verilir.

İnkişaf etmiş for döngəsinə yeni bir dəyər təyin etmək, massivdə saxlanılan dəyəri dəyişmir.

Bir sıra elementlərə keçmək və daxil olmaq üçün inkişaf etmiş bir döngə istifadə edərək yazılmış proqram kodu, döngə üçün indeksli və ya bir müddət döngəsi istifadə edərək yenidən yazıla bilər.