JavaRush /Java Blogu /Random-AZ /Java-da Loop üçün

Java-da Loop üçün

Qrupda dərc edilmişdir
Deyirlər ki, ən yaxşı proqramçı tənbəl proqramçıdır. Eyni tipli hərəkətləri bir neçə dəfə yerinə yetirmək əvəzinə, işini onun yerinə yetirəcək bir alqoritm hazırlayacaq. Və o, bunu yaxşı edəcək ki, yenidən düzəltməyə ehtiyac qalmasın. Java-da for loop-dan necə istifadə olunur - 1Eyni kodu təkrar-təkrar yazmamaq üçün döngələr icad edilmişdir. Təsəvvür edək ki, konsolda 0-dan 99-a qədər rəqəmləri göstərməliyik. Döngü olmadan kod:
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
Bu kod 100 sətir çəkəcək! Bu qədər. Və bu, bir döngə ilə necə görünəcək:
for(int i = 0; i < 100; i++) {
   System.out.println(i);
}
Cəmi 3 sətir!

Döngələr üçün nədir?

For loop alqoritmin icrasının xəttini pozan və göstərilən kodu dəfələrlə yerinə yetirməyə imkan verən proqram kodunun idarəetmə strukturudur. Məsələn, 30 damcı dərman qəbul etmək lazımdır. Alqoritm bu kimi bir şey olacaq:
  1. Bir stəkan hazırlayın.
  2. Qapağı açın.
  3. 1 damcı alın.
  4. 2 damcı alın.
  5. ...
  6. 30 damcı alın.
  7. Dərmanı bağlayın.
  8. Alınan hissəni götürün.
Bu alqoritmi daha tez izah etmək olar:
  1. Bir stəkan hazırlayın.
  2. Damcı qapağını açın.
  3. 30 damcı alın.
  4. Dərmanı bağlayın.
  5. Alınan hissəni götürün.
Biz demək olar ki, hər gün digər insanlarla söhbət zamanı for döngəsindən istifadə edirik: “...20 addım küçədə...”, “...10 təkrar və daha 5 təkrarla 2 dəfə yavaş...”, “.. .müxtəlif kateqoriyalarda 5 alış-veriş edin və mükafat qazanın...” Mən uzun müddət davam edə bilərdim, amma mənası aydındır. Java-da kodunuzu qısa və yığcam saxlamaq üçün for loopu vacibdir.

For loop necə işləyir

For loop aşağıdakı kimi istifadə olunur:
for(<начальная точка>; <condition выхода>; <операторы счетчика>) {
	// Loop body
}
Пример перебора цифр от 0 до 5 и вывод каждой в консоль:
for(int i = 0; i < 5; i++) {
   System.out.println(i);
}
Nəticə:

0
1
2
3
4
Bu girişi insan dilinə tərcümə etsək, aşağıdakıları əldə edirik: “ İlkin dəyəri 0 olan i dəyişənini 5-ə çatana qədər yaradın, ona 1 əlavə edin və hər addımda konsola i dəyərini yazın .” Java-da for döngəsi üç mərhələyə əsaslanır və onu aşağıdakı diaqramla göstərmək olar: Java-da for loopundan necə istifadə etmək olar - 2Döngədən çıxmaq şərti Boolean ifadəsidir. Əgər yalan olarsa, dövrə bitəcək. Yuxarıdakı misalda dəyişən i1 artırılır. Əgər onun dəyəri 5-dən azdırsa, dövrə davam edir. Ancaq i5-dən böyük və ya bərabər olduqda, dövr dayanacaq. Sayğac operatoru sayğac dəyişəni üzərində çevrilmə həyata keçirən ifadədir. Yuxarıdakı misalda dəyişən i1 artırıldı. Yəni, döngə düz 5 dəfə yerinə yetiriləcək. Sayğac operatoru dəyişənə 2 əlavə edərsə i, nəticə fərqli olacaq:
for(int i = 0; i < 5; i = i + 2) {
   System.out.println(i);
}
Nəticə:

0
2
4
Siz həmçinin dəyişəni çoxalda, bölmək, gücə yüksəltmək, ümumiyyətlə, istədiyinizi edə bilərsiniz. Əsas odur ki, transformasiya bir sıra ilə nəticələnir. Döngənin gövdəsi icra oluna bilən istənilən koddur. Yuxarıdakı misalda döngənin gövdəsi i dəyişəninin dəyərini konsola çıxarırdı, lakin bu gövdənin məzmunu tapşırıq və təxəyyüllə məhdudlaşır. Bütün sxemi ümumiləşdirsək, bunun for döngüsünün prinsipi belədir: döngənin gövdəsində olan kod, döngədən çıxmaq şərtinə çatana qədər sayğac operatorunun həyata keçirəcəyi çevrilmələrin sayı qədər yerinə yetiriləcəkdir. . Döngədən çıxış şərtini təyin etsəniz true:
for(int i = 0; true; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
unreachable statementSonra döngədən sonrakı kod heç vaxt yerinə yetirilməyəcəyi üçün xəta ilə qeyd olunacaq . İxtiraçılıq üçün problem: aşağıdakı kodun işlədilməsi nəticəsində Loop endedkonsola “ ” çıxacaq, yoxsa dövrə sonsuz işləyəcək?
for(int i = 0; i > -1; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Cavab: olacaq. i dəyişəni gec-tez maksimum dəyərinə çatacaq və daha da artım onu ​​maksimum mənfi qiymətə çevirəcək, nəticədə çıxış şərti ödəniləcək (i < = -1).

forHər bir döngə

Döngələrlə işləyərkən bəzən massivlər və ya kolleksiyalar üzərində təkrarlamalı olursunuz. Tipik olaraq, for loopundan istifadə edərək massiv vasitəsilə təkrarlaya bilərsiniz:
public void printAllElements(String[] stringArray) {
   for(int i = 0; i < stringArray.length; i++) {
       System.out.println(stringArray[i]);
   }
}
Və doğrudur. Bununla belə, massivin bütün elementlərini bir-bir təkrarlamaq üçün onlar forEach konstruksiyası ilə gəldilər. Onun imzası belədir:
for(<Тип element> <Name переменной, куда будет записан очередной элемент> : <Название массива>) {
	// Loop body
}
Siz bir sıra sətirləri təkrarlaya və hər birini aşağıdakı şəkildə konsolda çap edə bilərsiniz:
public void printAllElements(String[] stringArray) {
   for(String s : stringArray) {
       System.out.println(s);
   }
}
Həm də qısa və yığcam. Ən əsası, sayğac və çıxış vəziyyəti haqqında düşünməyə ehtiyac yoxdur, artıq hər şey bizim üçün edilir.

For döngələrindən necə istifadə olunur

İndi müxtəlif problemləri həll etmək üçün Java-da for loopundan istifadə etməklə bağlı bir neçə nümunəyə baxaq.

Əks dövr (böyükdən kiçiyə)

for(int i = 5; i > 0; i--) {
   System.out.println(i);
}
Nəticə:

5
4
3
2
1

Bir neçə dəyişən və döngə gövdəsində sayğacın artırılması

Siz for döngəsində çoxlu dəyişənlərdən istifadə edə bilərsiniz, məsələn, onlar əks ifadəyə çevrilə bilər:
int a = 0;
for(int i = 5; i > 0; i--, a++) {
   System.out.print("Step: " + a + " Meaning: ");
   System.out.println(i);
}
Nəticə:

Шаг: 0 Значение: 5
Шаг: 1 Значение: 4
Шаг: 2 Значение: 3
Шаг: 3 Значение: 2
Шаг: 4 Значение: 1
Və ya iki dəyişən elan edin və onlar bir-birinə bərabər olana qədər dövrə edin:
for(int i = 5, j = 11; i != j; i++, j--) {
   System.out.println("i: " + i + " j: " + j);
}
Nəticə:

i: 5 j: 11
i: 6 j: 10
i: 7 j: 9
Bu hərəkətin hər hansı bir dəyəri olması ehtimalı azdır, lakin bu ehtimal haqqında bilmək faydalıdır. Siz həmçinin for loop daxilində daxili döngələr yarada bilərsiniz. Bu vəziyyətdə, döngə addımlarının sayı vurulacaq:
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');
}
Nəticə:

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
Sayğac döngəsində jxarici döngənin sayğacına daxil olmaq mümkündür. Bu, iç-içə döngələri ikiölçülü, üçölçülü və digər massivləri keçmək üçün ideal bir üsul halına gətirir:
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');
}
Nəticə:

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

Dövrün erkən tamamlanması

Döngəni emal edərkən bir döngəni kəsmək lazımdırsa, operatordan istifadə edin break, döngənin cari gövdəsini dayandırır. Bütün sonrakı təkrarlamalar da atlanır:
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;
       }
   }
}
Metod serialda ilk axtarılan elementin mövqeyini çap edəcək:
String[] array = {"one", "two", "three", "Jeronimo"};
getFirstPosition(array, "two");
Nəticə:

1

Sonsuz dövr

Sonsuz for loopu yaratmağın başqa bir yolu sayğac bəyannamə sahəsini, çıxış şərtini və əks bəyanatı boş qoymaqdır:
for (;;) {
}
Ancaq unutmayın ki, əksər hallarda sonsuz döngə məntiqi səhvin sübutudur. Belə bir döngənin çıxış şərti olmalıdır. Java-da for loopundan necə istifadə etmək olar - 3
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION