Pambuka
Program pisanan kita yaiku urutan instruksi sing dileksanakake siji-sijine. Ora ana garpu. Iki HelloWorld, sing ngasilake frase salam lan petungan aritmetika menyang konsol. Sawise program pisanan, kita sinau kanggo cabang, yaiku, program nindakake tumindak tartamtu gumantung ing kahanan. Mangkene carane sampeyan bisa menehi kode AC supaya bisa dadi panas lan adhem:if (tempRoom>tempComfort)
airConditionerOn();
if (tempRoom<tempComfort
heaterOn();
Ayo dadi njupuk langkah sabanjure. Ing saben dinten gesang kita asring nindakake monoton, tumindak bola-bali, contone, peeling apel kanggo pai. Proses menarik iki bisa diterangake minangka:
-
Yen ana apel ing cekungan, tindakake langkah 1.1 nganti 1.4:
- 1.1. Njupuk apel
- 1.2. Resik lan Cut menyang irisan-irisan
- 1.3. Selehake ing dasar kue kue ing wajan
- 1.4. Ayo bali menyang langkah 1.
- Ayo kita nggandhengake jumlah apel, nanging yen kita duwe sawetara, sawetara prentah bakal ditindakake kanthi sia-sia tanpa "muatan" (lan, bisa uga, kita bakal ngethok awake dhewe nalika ngupas apel sing ora ana).
- Yen ana luwih akeh apel tinimbang tim pangolahan kita, sawetara produk bakal ora diproses.
- "Kode" kuwi angel diwaca, ngemot akeh pengulangan, lan angel diowahi.
Loops minangka operator kanggo nindakake tumindak kaping pirang-pirang.
The Java while loop (vile loop) bisa digunakake kanthi apik ing kasus kita. Desain iki ngatur macem-macem tumindak dadi struktur ringkes lan bisa dingerteni. Algoritma sauntara kanggo ngiris apel kanggo pie ing Jawa bisa katon kaya iki:while(числоЯблокВТазике>0) {
яблоко = тазик.взятьОчередноеЯблоко();
положитьВПирог(яблоко.чистить().нарезать());
числоЯблокВТазике--;//-- this is a decrement, reduces the number of apples by one
}
System.out.println('Apples for the pie are processed.');
Sintaks perintah
Cara pisanan kanggo njlèntrèhaké statement while kaya ing ngisor iki:while(Логическое выражение) {
// Loop body - periodically executed statement(s)
}
Iki ditindakake kaya ing ngisor iki (langkah demi langkah):
- Kita ngevaluasi kondisi Boolean sing nderek nalika ing kurung.
- Yen kondisi logis bener, banjur operator ing awak loop dieksekusi, sawise nglakokake operator pungkasan ing awak loop, pindhah menyang langkah 1
- Yen kondisi logis salah, banjur pindhah menyang statement pisanan njaba loop nalika.
Loop karo prasyarat
Wiwit sadurunge nglakokake awak loop, kita tansah ngetung ekspresi logis (kondisi kanggo ngetik loop), jinis nalika iki asring diarani loop kanthi prasyarat. Ayo gawe tabel saka sepuluh integer pisanan, kekuwatan positif saka nomer:public static void main(String[] args) {
int number = 3; // Number to be raised to a power
int result = 1; // Result of exponentiation
int power = 1; // Initial exponent
while(power <= 10) { // loop entry condition
result = result * number;
System.out.println(number + "to the extent" + power + " = " + result);
power++;
}
}
Hasil output konsol:
3 в степени 1 = 3
3 в степени 2 = 9
3 в степени 3 = 27
3 в степени 4 = 81
3 в степени 5 = 243
3 в степени 6 = 729
3 в степени 7 = 2187
3 в степени 8 = 6561
3 в степени 9 = 19683
3 в степени 10 = 59049
Process finished with exit code 0
Loop karo postcondition
Jenis siklus kapindho:do {
// Loop body - periodically executed statement(s)
}while (Логическое выражение);
Dilaksanakake kaya ing ngisor iki (langkah-langkah):
- Badan loop dieksekusi (langsung sawise tembung kunci do).
- Kita ngevaluasi kondisi Boolean sing nderek nalika ing kurung.
- Yen kondisi logis bener, banjur pindhah menyang langkah 1
- Yen kondisi logis salah, banjur pindhah menyang statement pisanan njaba loop nalika.
public static void main(String[] args) {
int number = 3;// Number to be raised to a power
int result = number;// Result of exponentiation
int power = 1;// Initial exponent
do {
System.out.println(number + "to the extent" + power + " = " + result);
power++;
result = result * number;
}while (result < 10000); // loop exit condition
Hasil output konsol:
3 в степени 1 = 3
3 в степени 2 = 9
3 в степени 3 = 27
3 в степени 4 = 81
3 в степени 5 = 243
3 в степени 6 = 729
3 в степени 7 = 2187
3 в степени 8 = 6561
Process finished with exit code 0
Priksa manawa owah-owahan ing kode kasebut, mbandhingake karo versi loop kanthi prasyarat.
Kasunyatan sing menarik babagan nggarap puteran
Kontrol printah ing awak daur ulang
Ana rong prentah sing mengaruhi kemajuan loop: break, fitur sing bakal dituduhake ing bab sabanjure, lan- terus - mungkasi eksekusi awak daur ulang saiki lan pindhah menyang ekspresi logis saka operator nalika. Yen ekspresi sing diwilang bener, eksekusi loop bakal terus.
- break - langsung mungkasi eksekusi daur ulang saiki lan mlumpat menyang printah pisanan ing njaba. Mangkono, eksekusi loop saiki diselani. Kita bakal nliti kanthi luwih rinci ing topik sabanjure.
continue
:
while(числоЯблокВТазике>0) {
яблоко = тазик.взятьОчередноеЯблоко();
числоЯблокВТазике--;//-- this is a decrement, reduces the number of apples by one
if (яблоко.плохое()) { // method will return true for rotten, etc. apples
яблоко.выкинутьВМусор();
continue; // continue the loop, go to the condition number ofApplesIn the Basin>0
}
положитьВПирог(яблоко.чистить().нарезать());
}
Konstruksi kasebut
continue
asring digunakake nalika ana ing awak daur ulang kudu nglakokake prentah nalika ana kahanan tartamtu, umpamane, kanggo nindakake tumindak nalika sensor ing peralatan dipicu (yen ora, terusake siklus maca indikator kasebut) utawa kanggo ngetung ekspresi mung ing langkah-langkah tartamtu saka siklus. Conto kanggo kasus pungkasan yaiku pitungan ing daur ulang saka jumlah kubus nomer alam sing kothak kurang saka nomer kasebut:
public static void main(String[] args) {
int sum = 0; // total amount
int i = 0; // starting number of the row
int count = 20; // amount of numbers
while(i<=count) {
i++; // take the next number, i++ is equivalent to i=i+1
if (i*i<=count) // if the square of the number is less
continue; // number of numbers - do not count the sum
// move on to the next number in the loop
sum += i*i*i; // otherwise, we calculate the sum of cubes of numbers
} // sum += i*i*i - notation similar to sum = sum + i*i*i
System.out.println(sum);// print result
}
Siklus tanpa wates
Perintah kontrol iki paling kerep digunakake ing daur ulang tanpa wates. Iki diarani amarga kondisi metu logis ora tau wareg. Ing kode katon kaya:while(true) {
// Loop body
}
break
Ing kasus iki, nggunakake printah kanggo ngatur metu saka iku bakal migunani . Gelung jinis iki kedadeyan nalika nunggu kondisi eksternal sing dibentuk ing njaba logika awak loop. Contone, ing game sing niru donya virtual sak pahlawan (metu saka daur ulang = metu saka game), sistem operasi. Utawa nalika nggunakake kalkulus, mbok menawa nambah asil karo saben telpon sakteruse ing daur ulang, nanging matesi wong dening wektu utawa kedadeyan saka acara external (checkers, catur utawa prakiraan cuaca). Sampeyan kudu eling yen ing kahanan normal, puteran tanpa wates minangka salah sawijining masalah ketidakstabilan program. Kanggo nduduhake, ayo bali menyang kekuwatan nomer:
public static void main(String[] args) {
int number = 3; // Number to be raised to a power
int result = 1; // Result of exponentiation
int power = 1; // Initial exponent
while(true) {
result = result * number;
System.out.println(number + "to the extent" + power + " = " + result);
power++;
if (power>10)
break; // exit from the loop
}
}
Hasil output konsol:
3 в степени 1 = 3
3 в степени 2 = 9
3 в степени 3 = 27
3 в степени 4 = 81
3 в степени 5 = 243
3 в степени 6 = 729
3 в степени 7 = 2187
3 в степени 8 = 6561
3 в степени 9 = 19683
3 в степени 10 = 59049
Process finished with exit code 0
Nested Loops
Kene kita teka menyang topik pungkasan babagan siklus kita. Ayo dipikirake babagan pai apel (muga-muga sampeyan ora keluwen saiki) lan "loop" kita:-
Yen ana apel ing cekungan, tindakake langkah 1.1 nganti 1.4:
- 1.1. Njupuk apel
- 1.2. Resik lan Cut menyang irisan-irisan
- 1.3. Selehake ing dasar kue kue ing wajan
- 1.4. Ayo bali menyang langkah 1.
- Jumlah irisan = 0
-
Nalika jumlah irisan <12, tindakake langkah 2.1 nganti 2.3
- 2.1. Cut irisan liyane saka apel
- 2.2. Jumlah irisan ++
- 2.3. Bali menyang langkah 2
-
Yen ana apel ing cekungan, tindakake langkah 1.1 nganti 1.6:
- 1.1. Njupuk apel
- 1.2. Kupas
- 1.3. Jumlah irisan = 0
- 1.4. Пока число долек < 12, выполнить шаги с 1.4.1 по 1.4.3
- 1.4.1. Отрезать очередную дольку от яблока
- 1.4.2. Кол-во долек ++ 1.4.3. Возвращаемся на шаг 1.4
- 1.5. Помещаем дольки на тестовое основание пирога из теста на сковороде
- 1.6. Возвращаемся на шаг 1.
public static void main(String[] args) {
// Display the values of the second multiplier in the line
System.out.println(" 2 3 4 5 6 7 8 9");
int i = 2; // first multiplier, assign starting value
while(i<10) { // First loop, execute while the first multiplier is less than 10
System.out.print(i + " | ");// Display the first multiplier at the beginning of the string
int j = 2; // second multiplier, starting value
while (j<10) { // Second loop, execute while the second multiplier is less than 10
int mul=i*j; // Calculate the product of factors
if (mul<10) // If it contains one digit, print two spaces after it
System.out.print(mul + " ");
else // otherwise output the product and after it - one space
System.out.print(mul + " ");
j++; // Increase the second multiplier by one,
} // Go to the beginning of the second loop (while (j<10 ).... )
System.out.println(); // Move to the next line of output
i++; // Increase the first multiplier by one,
} // Go to the beginning of the first loop (while ( i<10 ) ....
}
Результат вывода на консоль:
2 3 4 5 6 7 8 9
2 | 4 6 8 10 12 14 16 18
3 | 6 9 12 15 18 21 24 27
4 | 8 12 16 20 24 28 32 36
5 | 10 15 20 25 30 35 40 45
6 | 12 18 24 30 36 42 48 54
7 | 14 21 28 35 42 49 56 63
8 | 16 24 32 40 48 56 64 72
9 | 18 27 36 45 54 63 72 81
Process finished with exit code 0
Циклы (в частности, оператор while) – один из фундаментальных кирпичиков построения программ. Решая задачи на JavaRush, вы изучите все их разнообразие, разберёте тонкости функционирования и получите практические навыки их применения.
GO TO FULL VERSION