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

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

Топта жарияланған
Ең жақсы бағдарламашы – жалқау бағдарламашы дейді. Бір типті әрекеттерді бірнеше рет орындаудың орнына ол өзіне жұмыс істейтін алгоритмді ойлап табады. Және оны қайта жасаудың қажеті болмас үшін ол мұны жақсы жасайды. Java-да for циклін қалай қолдануға болады - 1Бір codeты қайта-қайта жазбау үшін циклдар ойлап табылды. Консольге 0-ден 99-ға дейінгі сандарды көрсету керек деп елестетіп көрейік Циклсіз code:
System.out.println(0);
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
// And so on
Бұл code 100 жолды алады! Өте көп. Міне, ол циклмен қалай көрінеді:
for(int i = 0; i < 100; i++) {
   System.out.println(i);
}
Бар болғаны 3 жол!

For циклдері дегеніміз не?

For циклі – алгоритмнің орындалу сызықтылығын бұзатын және көрсетілген codeты бірнеше рет орындауға мүмкіндік беретін программа codeының басқару құрылымы. Мысалы, 30 тамшы дәрі қабылдау керек. Алгоритм келесідей болады:
  1. Стакан дайындаңыз.
  2. Қақпақты ашыңыз.
  3. 1 тамшы алыңыз.
  4. 2 тамшы алыңыз.
  5. ...
  6. 30 тамшы алыңыз.
  7. Дәрі-дәрмекті жабыңыз.
  8. Алынған бөлікті алыңыз.
Бұл алгоритмді тезірек түсіндіруге болады:
  1. Стакан дайындаңыз.
  2. Тамшы қақпағын ашыңыз.
  3. 30 тамшы алыңыз.
  4. Дәрі-дәрмекті жабыңыз.
  5. Алынған бөлікті алыңыз.
Біз басқа адамдармен сөйлескенде күн сайын дерлік for циклін қолданамыз: «...көшеде 20 қадам...», «...10 қайталау және тағы 5 қайталауды 2 есе баяу орындаңыз...», «.. .Әртүрлі санаттар бойынша 5 сатып алу жасаңыз және сыйлық алыңыз...» Мен ұзақ уақыт жалғастыра аламын, бірақ мағынасы түсінікті. Java тілінде for циклі codeты қысқа және қысқаша сақтау үшін өте маңызды.

for циклі қалай жұмыс істейді

for циклі келесідей қолданылады:
for(<начальная точка>; <condition выхода>; <операторы счетчика>) {
	// Loop body
}
Пример перебора цифр от 0 до 5 и вывод каждой в консоль:
for(int i = 0; i < 5; i++) {
   System.out.println(i);
}
Қорытынды:

0
1
2
3
4
Бұл жазбаны адам тіліне аударатын болсақ, біз мынаны аламыз: « Бастапқы мәні 0 болатын i айнымалысын жасаңыз, ол 5-ке жеткенше, оған 1 қосыңыз және әр қадамда консольге i мәнін жазыңыз ». Java тіліндегі for циклі үш кезеңге негізделген, оны келесі диаграмма арқылы көрсетуге болады: Java тілінде for циклін қалай пайдалануға болады - 2Циклдан шығу шарты логикалық өрнек болып табылады. Егер ол жалған болса, цикл аяқталады. Жоғарыдағы мысалда айнымалы i1-ге артады. Егер оның мәні 5-тен аз болса, цикл жалғасады. Бірақ ол 5-тен үлкен немесе тең болған кезде iцикл тоқтайды. Есептегіш оператор санауыш айнымалыға түрлендіруді орындайтын өрнек. Жоғарыдағы мысалда айнымалы мән i1-ге көбейтілді. Яғни, цикл дәл 5 рет орындалады. Егер санауыш оператор айнымалыға 2 қосса i, нәтиже басқаша болады:
for(int i = 0; i < 5; i = i + 2) {
   System.out.println(i);
}
Қорытынды:

0
2
4
Сондай-ақ айнымалыны көбейтуге, бөлуге, дәрежеге көтеруге, жалпы, қалағаныңызды жасауға болады. Ең бастысы, түрлендіру нәтижесінде сан шығады. Циклдің денесі - бұл орындалатын кез келген code. Жоғарыдағы мысалда циклдің денесі консольге i айнымалысының мәнін шығарды, бірақ бұл дененің мазмұны тапсырма мен қиялмен шектеледі. Бүкіл схеманы қорытындылайтын болсақ, бұл циклдің принципі келесідей: циклдің негізгі бөлігіндегі code циклден шығу шартына жеткенге дейін санауыш оператор орындайтын түрлендірулер санына қанша рет орындалады, сонша рет орындалады. . Егер циклден шығу шартын келесідей орнатсаңыз true:
for(int i = 0; true; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Содан кейін циклден кейінгі code қатемен белгіленеді unreachable statement, өйткені ол ешқашан орындалмайды. Тапқырлыққа шақыру: төмендегі codeты іске қосу нәтижесінде Loop endedконсольге « » шығады ма немесе цикл шексіз жұмыс істей ме?
for(int i = 0; i > -1; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Жауап: болады. Айнымалы i ерте ме, кеш пе өзінің максималды мәніне жетеді, ал одан әрі жоғарылау оны максималды теріс мәнге айналдырады, нәтижесінде шығу шарты орындалады (i < = -1).

forEach циклі

Циклдермен жұмыс істегенде, кейде массивтерді немесе жинақтарды қайталауға тура келеді. Әдетте for циклін пайдаланып массив арқылы қайталауға болады:
public void printAllElements(String[] stringArray) {
   for(int i = 0; i < stringArray.length; i++) {
       System.out.println(stringArray[i]);
   }
}
Және бұл дұрыс. Дегенмен, массивтің барлық элементтерін бір-бірлеп қайталау үшін олар forEach конструкциясын ойлап тапты. Оның қолтаңбасы келесідей:
for(<Тип element> <Name переменной, куда будет записан очередной элемент> : <Название массива>) {
	// Loop body
}
Жолдар жиымын қайталауға және әрқайсысын консольге келесі жолмен басып шығаруға болады:
public void printAllElements(String[] stringArray) {
   for(String s : stringArray) {
       System.out.println(s);
   }
}
Сондай-ақ қысқа және қысқа. Ең бастысы, есептегіш пен шығу жағдайы туралы ойлаудың қажеті жоқ, біз үшін бәрі қазірдің өзінде жасалды.

Қалай for циклдері қолданылады

Енді әртүрлі есептерді шешу үшін Java тіліндегі for циклін қолданудың бірнеше мысалдарын қарастырайық.

Кері цикл (үлкеннен кішіге қарай)

for(int i = 5; i > 0; i--) {
   System.out.println(i);
}
Қорытынды:

5
4
3
2
1

Бірнеше айнымалылар және цикл денесінде есептегішті ұлғайту

For циклінде бірнеше айнымалы мәндерді пайдалануға болады, мысалы, оларды есептегіш мәлімдемеде түрлендіруге болады:
int a = 0;
for(int i = 5; i > 0; i--, a++) {
   System.out.print("Step: " + a + " Meaning: ");
   System.out.println(i);
}
Қорытынды:

Шаг: 0 Значение: 5
Шаг: 1 Значение: 4
Шаг: 2 Значение: 3
Шаг: 3 Значение: 2
Шаг: 4 Значение: 1
Немесе екі айнымалыны жариялаңыз және олар бір-біріне тең болғанша цикл жасаңыз:
for(int i = 5, j = 11; i != j; i++, j--) {
   System.out.println("i: " + i + " j: " + j);
}
Қорытынды:

i: 5 j: 11
i: 6 j: 10
i: 7 j: 9
Бұл әрекеттің қандай да бір мәнге ие болуы екіталай, бірақ бұл мүмкіндік туралы білу пайдалы. Сондай-ақ, for циклі ішінде ішкі циклдарды жасауға болады. Бұл жағдайда цикл қадамдарының саны көбейтіледі:
for(int i = 0; i < 5; i++) {
   System.out.print(i + " | ");
   for(int j = 0; j < 5; j++) {
       System.out.print(j + " ");
   }
   System.out.print('\n');
}
Қорытынды:

0 | 0 1 2 3 4 
1 | 0 1 2 3 4 
2 | 0 1 2 3 4 
3 | 0 1 2 3 4 
4 | 0 1 2 3 4
Есептегіш циклде jсыртқы циклдің есептегішіне қол жеткізуге болады. Бұл кірістірілген циклдарды екі өлшемді, үш өлшемді және басқа массивтерді өтудің тамаша тәсілі етеді:
int[][] array = { {0, 1, 2, 3, 4 },
                       {1, 2, 3, 4, 5},
                       {2, 3, 4, 5, 6},
                       {3, 4, 5, 6, 7}};

for(int i = 0; i < array.length; i++) {
   for(int j = 0; j < array[i].length; j++) {
       System.out.print(array[i][j] + " ");
   }
   System.out.print('\n');
}
Қорытынды:

0 1 2 3 4 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 

Циклдің ерте аяқталуы

Егер циклды өңдеу кезінде циклды үзу қажет болса, breakциклдің ағымдағы денесін тоқтататын операторды пайдаланыңыз. Барлық келесі итерациялар да өткізілмейді:
public void getFirstPosition(String[] stringArray, String element) {
   for (int i = 0; i < stringArray.length; i++) {
       if(stringArray[i].equals(element)) {
           System.out.println(i);
           break;
       }
   }
}
Әдіс массивтегі бірінші ізделген элементтің орнын басып шығарады:
String[] array = {"one", "two", "three", "Jeronimo"};
getFirstPosition(array, "two");
Қорытынды:

1

Шексіз цикл

Infinite for циклін жасаудың тағы бір жолы - есептегіш мәлімдеме аймағын, шығу шартын және есептегіш мәлімдемені бос қалдыру:
for (;;) {
}
Бірақ көп жағдайда шексіз цикл логикалық қатенің дәлелі екенін есте сақтаңыз. Мұндай циклдің шығу шарты болуы керек. Java тілінде for циклін қалай пайдалануға болады - 3
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION