Java taas ja tee ... samalla kun silmukka

Tässä opetusohjelmassa opit käyttämään Java-aikaa ja -toimintoa silmukoiden avulla esimerkkien avulla.

Tietokoneohjelmoinnissa silmukoita käytetään toistamaan koodilohko. Esimerkiksi, jos haluat näyttää viestin 100 kertaa, voit käyttää silmukkaa. Se on vain yksinkertainen esimerkki; voit saavuttaa paljon enemmän silmukoilla.

Edellisessä opetusohjelmassa opit Java for loop -sovelluksesta. Tässä aiot oppia whileja do… whilesilmukoita.

Java taas silmukka

Java- whilesilmukkaa käytetään tietyn koodin suorittamiseen, kunnes tietty ehto täyttyy. whileSilmukan syntaksi on:

 while (testExpression) ( // body of loop )

Tässä,

  1. whileSilmukka arvioi textExpression sulkeiden sisään ().
  2. Jos textExpression arvioi arvon true, whilesilmukan sisällä oleva koodi suoritetaan.
  3. TextExpression arvioidaan uudelleen.
  4. Tätä prosessia jatketaan, kunnes textExpression on false.
  5. Kun textExpression arvioi arvon false, silmukka pysähtyy.

Lisätietoja olosuhteista on Java-relaatio- ja loogisissa operaattoreissa.

Vuokaavio while-silmukasta

Vuokaavio Java while -silmukasta

Esimerkki 1: Näytä numerot 1-5

 // Program to display numbers from 1 to 5 class Main ( public static void main(String() args) ( // declare variables int i = 1, n = 5; // while loop from 1 to 5 while(i <= n) ( System.out.println(i); i++; ) ) )

Tuotos

 1 2 3 4 5

Näin tämä ohjelma toimii.

Toisto Vaihteleva Ehto: i <= n Toiminta
1 i = 1
n = 5
true 1 on tulostettu.
i korotetaan arvoon 2 .
2. i = 2
n = 5
true 2 on tulostettu.
i korotetaan arvoon 3 .
3. i = 3
n = 5
true 3 on tulostettu.
i korotetaan arvoon 4 .
4. päivä i = 4
n = 5
true 4 on tulostettu.
i korotetaan arvoon 5 .
5. i = 5
n = 5
true 5 on tulostettu.
i korotetaan arvoon 6 .
6. i = 6
n = 5
false Silmukka on päättynyt

Esimerkki 2: Vain positiivisten lukujen summa

 // Java program to find the sum of positive numbers import java.util.Scanner; class Main ( public static void main(String() args) ( int sum = 0; // create an object of Scanner class Scanner input = new Scanner(System.in); // take integer input from the user System.out.println("Enter a number"); int number = input.nextInt(); // while loop continues // until entered number is positive while (number>= 0) ( // add only positive numbers sum += number; System.out.println("Enter a number"); number = input.nextInt(); ) System.out.println("Sum = " + sum); input.close(); ) )

Tuotos

 Syötä numero 25 Syötä numero 9 Syötä numero 5 Syötä numero -3 Summa = 39

Edellä olevassa ohjelmassa olemme käyttäneet Scanner-luokkaa ottaaksemme käyttäjältä tietoja. Tässä nextInt()otetaan kokonaislukutulo käyttäjältä.

whileSilmukka jatkuu, kunnes käyttäjä syöttää negatiivinen luku. Kunkin iteraation aikana käyttäjän syöttämä numero lisätään summuuttujaan.

Kun käyttäjä syöttää negatiivisen luvun, silmukka päättyy. Lopuksi näytetään kokonaissumma.

Java ei… vaikka silmukka

do… whileSilmukka on samanlainen, kun taas silmukka. do… whileSilmukan runko suoritetaan kuitenkin kerran ennen testilausekkeen tarkistamista. Esimerkiksi,

 do ( // body of loop ) while(textExpression)

Tässä,

  1. Silmukan runko suoritetaan aluksi. Sitten textExpression arvioidaan.
  2. Jos textExpression arvioi arvon true, dolauseen sisällä olevan silmukan runko suoritetaan uudelleen.
  3. TextExpression arvioidaan uudelleen.
  4. Jos textExpression arvioi arvon true, dolauseen sisällä olevan silmukan runko suoritetaan uudelleen.
  5. Tämä prosessi jatkuu, kunnes textExpression arvioi arvon false. Sitten silmukka pysähtyy.

Vuokaavio do… while -silmukasta

Vuokaavio Java do while -silmukasta

Katsotaanpa do… whilesilmukan toimintaa.

Esimerkki 3: Näytä numerot 1-5

 // Java Program to display numbers from 1 to 5 import java.util.Scanner; // Program to find the sum of natural numbers from 1 to 100. class Main ( public static void main(String() args) ( int i = 1, n = 5; // do… while loop from 1 to 5 do ( System.out.println(i); i++; ) while(i <= n); ) )

Tuotos

 1 2 3 4 5

Näin tämä ohjelma toimii.

Toisto Vaihteleva Ehto: i <= n Toiminta
i = 1
n = 5
ei tarkistettu 1 on tulostettu.
i korotetaan arvoon 2 .
1 i = 2
n = 5
true 2 on tulostettu.
i korotetaan arvoon 3 .
2. i = 3
n = 5
true 3 on tulostettu.
i korotetaan arvoon 4 .
3. i = 4
n = 5
true 4 on tulostettu.
i korotetaan arvoon 5 .
4. päivä i = 5
n = 5
true 6 on tulostettu.
i korotetaan arvoon 6 .
5. i = 6
n = 5
false Silmukka on päättynyt

Esimerkki 4: Positiivisten lukujen summa

 // Java program to find the sum of positive numbers import java.util.Scanner; class Main ( public static void main(String() args) ( int sum = 0; int number = 0; // create an object of Scanner class Scanner input = new Scanner(System.in); // do… while loop continues // until entered number is positive do ( // add only positive numbers sum += number; System.out.println("Enter a number"); number = input.nextInt(); ) while(number>= 0); System.out.println("Sum = " + sum); input.close(); ) )

Lähtö 1

 Syötä numero 25 Syötä numero 9 Syötä numero 5 Syötä numero -3 Summa = 39

Here, the user enters a positive number, that number is added to the sum variable. And this process continues until the number is negative. When the number is negative, the loop terminates and displays the sum without adding the negative number.

Output 2

 Enter a number -8 Sum is 0

Here, the user enters a negative number. The test condition will be false but the code inside of the loop executes once.

Infinite while loop

If the condition of a loop is always true, the loop runs for infinite times (until the memory is full). For example,

 // infinite while loop while(true)( // body of loop )

Here is an example of an infinite do… while loop.

 // infinite do… while loop int count = 1; do ( // body of loop ) while(count == 1)

In the above programs, the textExpression is always true. Hence, the loop body will run for infinite times.

for and while loops

forSilmukkaa käytetään, kun iteraatioiden lukumäärä on tiedossa. Esimerkiksi,

 for (let i = 1; i <=5; ++i) ( // body of loop )

Ja whileja do… whilesilmukoita käytetään yleensä, kun määrä toistojen on tuntematon. Esimerkiksi,

 while (condition) ( // body of loop )

Mielenkiintoisia artikkeleita...