JavaRush /Java блогы /Random-KK /Java тіліндегі әрбір цикл үшін

Java тіліндегі әрбір цикл үшін

Топта жарияланған

Java тіліндегі foreach дегеніміз не?

For-each - массивтің немесе жинақтың барлық элементтерін өңдеу қажет болғанда пайдаланылатын for циклінің түрі. «Әрқайсысы үшін» ағылшын тілінен «барлығы үшін» деп аударылған. Шын мәнінде, бұл циклде foreach тіркесі қолданылмайды. Оның синтаксисі келесідей:
for (type itVar : array)
{
    Блок операторов;
}
Қай жерде typeқайталанатын айнымалының түрі (массивтегі деректер типімен бірдей!), itVarоның аты, arrayмассив (сонымен қатар басқа деректер құрылымы болуы мүмкін, жинақтың қандай да бір түрі, мысалы ArrayList), яғни цикл орындалатын an object. Көріп отырғаныңыздай, бұл дизайнда санауыш пайдаланылмайды; итерация айнымалысы индекс мәндерін емес, массивтің немесе жинақтың элементтерін қайталайды. Мұндай циклды орындаған кезде қайталанатын айнымалыға массивтің немесе жинақтың әрбір элементінің мәні ретімен тағайындалады, содан кейін операторлардың (немесе оператордың) көрсетілген блогы орындалады.

Әр циклден басқа Java-да forEach() әдісі де бар. Бұл туралы, мысалы, « Циклдарды жазуды тоқтатыңыз!» мақаласынан оқуға болады. Java 8 жинақтармен жұмыс істеудің ең жақсы 10 әдісі »

Назар аударыңыз:for-each циклін java.lang.Iterable интерфейсін жүзеге асыратын массивтерге және кез келген сыныптарға қолдануға болады. Жоғарыдағы codeтың баламасы for циклі келесідей болады :
for (int i=0; i<array.length; i++)
{

    Блок операторов;
}

Java fore мысалы

Оқушылардың бағаларының массивін құрайық. Әрі қарай, for-әрқайсысын қолданып, біз барлық ұпайларды басып шығарамыз, орташа баллды көрсетеміз және максималды ұпайды табамыз.
public class ForEachTest {

//method that prints all grades
public static void printAllGrades(int[] grades) {
        System.out.print("|");
        for (int num : grades) {

            System.out.print(num + "|");
        }
        System.out.println();
    }

//method that displays the average score

public static double midGrade(int[] numbers) {
        int grade = 0;

        for (int num : numbers) {
            grade = num + grade;
        }
        return ((double) grade / numbers.length);

    }
//method in which the best (maximum) score is calculated
    public static int bestGrade(int[] numbers) {
        int maxGrade = numbers[0];

        for (int num : numbers) {
            if (num > maxGrade) {
                maxGrade = num;
            }
        }
        return maxGrade;
    }

public static void main(String[] args) {

//array of ratings
int[] grades = {5, 10, 7, 8, 9, 9, 10, 12};


  int highest_marks = bestGrade(grades);
        System.out.print("All the grades: ");
        printAllGrades(grades);
        System.out.println("The highest grade is " + highest_marks);
        System.out.println("The average grade is " + midGrade(grades));
    }

}
Бағдарламаның шығуы:
All the grades: |5|10|7|8|9|9|10|12|
The highest grade is 12
The average grade is 8.75
Енді кәдімгі for циклі арқылы орындалған барлық ұпайларды басып шығару әдісі қандай болатынын көрейік:
public static void printAllGrades(int[] grades) {
        System.out.print("|");
        for (int i = 0; i < grades.length; i++) {

            System.out.print(grades[i] + "|");
        }
        System.out.println();
    }
Бұл әдісті әдістен шақырсақ main, нәтиже аламыз:
All the grades: |5|10|7|8|9|9|10|12|

Коллекциялары бар for-әр циклін пайдалану мысалы

Атаулар жинағын жасап, экранда барлық атауларды көрсетейік.
List<String> names = new ArrayList<>();
        names.add("Snoopy");
        names.add("Charlie");
        names.add("Linus");
        names.add("Shroeder");
        names.add("Woodstock");

        for(String name : names){
            System.out.println(name);
        }

for-әр циклінің шектеулері

for-each ықшам түрі for-ға қарағанда оқуға ыңғайлы болып саналады және оны орындауға болатын жерде for-ol пайдалану жақсы тәжірибе болып саналады. Дегенмен, for-each әдеттегі for-ға қарағанда әмбебап құрылым болып табылады. Міне, әрқайсысы үшін пайдалану мүлдем жұмыс істемейтін немесе жұмыс істейтін, бірақ қиын болатын бірнеше қарапайым жағдайлар.
  1. Егер сіз соңынан басына дейін цикл арқылы өткіңіз келсе. Яғни, келесі codeтың әрқайсысы үшін тікелей аналогы жоқ:

    for (int i = array.length - 1; i >= 0; i--)
    {
          System.out.println(array[i]);
    }
  2. Массивке өзгертулер енгізгіңіз келсе, әрқайсысы үшін қолайлы емес. Мысалы, массив элементтерін ауыстырмай сұрыптау мүмкін болмайды. Немесе келесі codeта массив элементі емес, тек итерация айнымалысы өзгереді:

    for (int itVar : array)
    {
        itVar = itVar++;
    }
  3. Егер сіз массивте элементті іздеп жатсаңыз және сіз іздеген элементтің индексін қайтару (немесе беру) қажет болса, тұрақты for циклін қолданған дұрыс.

JavaRush студенті дайындаған әрқайсысы туралы пайдалы бейне

JavaRush курсындағы циклдар

JavaRush бағдарламасында біз Java синтаксисі квестінің 4 деңгейінде циклдерді тәжірибеде пайдалана бастаймыз . Оларға арналған бірнеше лекциялар, сонымен қатар олармен жұмыс істеу дағдыларын нығайту үшін әртүрлі деңгейдегі көптеген тапсырмалар бар. Жалпы, сіз олардан құтыла алмайсыз; циклдар бағдарламалаудағы ең маңызды құрылымдардың бірі болып табылады.

for-her және циклдер туралы толығырақ:

  1. For және For-Each циклі: қалай қайталағаным, қайталағаным, бірақ қайталамағаным туралы ертегі - Java тіліндегі for және for-her циклдері туралы жақсы егжей-тегжейлі мақала. Оқытылған оқырманға арналған (шамамен JavaRush деңгейі 10 және одан жоғары).
  2. Мәлімдеме кезінде . whileМақала JavaRush-те циклдермен танысуды бастайтын қарапайым циклге арналған .
  3. Жазу циклдарын тоқтатыңыз! Java 8-де жинақтармен жұмыс істеудің ең жақсы 10 әдісі . Бұл мақаладан курстың жартысын немесе одан да көп курсын аяқтаған JavaRush студенті жинақтармен жұмыс істеу туралы көп нәрсені үйренеді.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION