Instrukcje interacyjne

/*
PetlaFor1.java

Przebieg wykonania pętli for:

1. Wykonanie instrukcji przypisania int i = 0.
2. Sprawdzenie warunku i < 5.
   Jeśli warunek prawdziwy, to:
      a) wykonanie instrukcji z ciała pętli,
      b) wykonanie instrukcji inkrementacji i++,
      c) przejście do punktu 2.
   Jeśli warunek fałszywy, to:
      a) przerwanie pętli.
*/

public class PetlaFor1
{
  public static void main(String[] args)
  {
    for (int i = 0; i < 5; i++) // nagłówek pętli for
    {
      System.out.println("i = " + i); // ciało pętli for
    }
    // zmienna i widoczna jest tylko w ciele pętli for
    System.out.println("Petla wykonana.");
  }
}
i = 0
i = 1
i = 2
i = 3
i = 4
Petla wykonana.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaFor1.

i = 0
0 < 5   "i = 0"   i = 1
1 < 5   "i = 1"   i = 2
2 < 5   "i = 2"   i = 3
3 < 5   "i = 3"   i = 4
4 < 5   "i = 4"   i = 5
5 < 5   false

"Petla wykonana."
/* PetlaFor2.java */

public class PetlaFor2
{
  public static void main(String[] args)
  {
    int i;
    for (i = 0; i < 5; i++)
    {
      System.out.println("i = " + i);
    }
    // zmienna i widoczna jest również poza ciałem pętli for
    System.out.println("Petla wykonana, i = " + i + ".");
  }
}
i = 0
i = 1
i = 2
i = 3
i = 4
Petla wykonana, i = 5.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaFor2.

i
i = 0
0 < 5   "i = 0"   i = 1
1 < 5   "i = 1"   i = 2
2 < 5   "i = 2"   i = 3
3 < 5   "i = 3"   i = 4
4 < 5   "i = 4"   i = 5
5 < 5   false

"Petla wykonana, i = 5."
/* PetlaFor3.java */

public class PetlaFor3
{
  public static void main(String[] args)
  {
    int a = 3; // należy zmieniać wartości a, b, c.
    int b = 8;
    int c = 2;

    int i;
    for (i = a; i < b; i = i + c)
    {
      System.out.println("i = " + i);
    }
    // zmienna i widoczna jest również poza ciałem pętli for
    System.out.println("Petla wykonana, i = " + i + ".");
  } 
}
i = 3
i = 5
i = 7
Petla wykonana, i = 9.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaFor3.

a = 3
b = 8
c = 2

i
i = 3   
3 < 8   "i = 3"   i = 3 + 2 = 5
5 < 8   "i = 5"   i = 5 + 2 = 7
7 < 8   "i = 7"   i = 7 + 2 = 9
9 < 8   false

"Petla wykonana, i = 9."
/*
PetlaWhile1.java

Przebieg wykonania pętli while:

1. Spawdzenie warunku i < 5.
   Jeśli warunek prawdziwy, to:
      a) wykonanie instrukcji z ciała pętli,
      b) przejście do punktu 1.
   Jeśli warunek fałszywy, to:
      a) przerwanie pętli.
*/

public class PetlaWhile1
{
  public static void main(String[] args)
  {
    int i = 0;
    while (i < 5) // nagłówek pętli while
    {
      System.out.println("i = " + i); // ciało pętli while
      i++;                            //
    }
    System.out.println("Petla wykonana, i = " + i + ".");
  }
}
i = 0
i = 1
i = 2
i = 3
i = 4
Petla wykonana, i = 5.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaWhile1.

i = 0
0 < 5   "i = 0"
        i = 1
1 < 5   "i = 1"
        i = 2
2 < 5   "i = 2"
        i = 3
3 < 5   "i = 3"
        i = 4
4 < 5   "i = 4"
        i = 5
5 < 5   false

"Petla wykonana, i = 5."
/* PetlaWhile2.java */

public class PetlaWhile2
{
  public static void main(String[] args)
  {
    int a = -4;  // należy zmieniać wartości a i b
    int b = 5;
    int c = 3;
        
    int i = a;
    while (i < b)
    {
      System.out.println("i = " + i);
      i = i + c;
    }
    System.out.println("Petla wykonana, i = " + i + ".");
  }
}
i = -4
i = -1
i = 2
Petla wykonana, i = 5.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaWhile2.

a = -4
b = 5
c = 3

i = -4
-4 < 5   "i = -4"
         i = -4 + 3 = -1
-1 < 5   "i = -1"
         i = -1 + 3 = 2
2 < 5    "i = 2"
         i = 2 + 3 = 5
5 < 5    false

"Petla wykonana, i = 5."
/*
PetlaDoWhile1.java

Przebieg wykonania pętli do..while:

1. Wykonanie instrukcji z ciała pętli.
2. Spawdzenie warunku i < 5.
   Jeśli warunek prawdziwy, to:
      przejście do punktu 1.
   Jeśli warunek fałszywy, to:
      przerwanie pętli.

Uwaga: Pętla do..while wykona się przynajmniej jeden raz.
*/

public class PetlaDoWhile1
{
  public static void main(String[] args)
  {
    int i = 0;

    do
    {
      System.out.println("i = " + i); // ciało pętli do..while
      i++;                            //
      
    } while (i < 5); // nagłówek pętli do..while
    
    System.out.println("Petla wykonana, i = " + i + ".");
  }
}
i = 0
i = 1
i = 2
i = 3
i = 4
Petla wykonana, i = 5.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaDoWhile1.

i = 0

"i = 0"
i = 1    1 < 5   "i = 1"
                 i = 2
         2 < 5   "i = 2"
                 i = 3
         3 < 5   "i = 3"
                 i = 4
         4 < 5   "i = 4"
                 i = 5
         5 < 5   false
         
"Petla wykonana, i = 5."
/* PetlaDoWhile2.java */

public class PetlaDoWhile2
{
  public static void main(String[] args)
  {
    int a = -7;  // należy zmieniać wartości a, b, c.
    int b = -3;
    int c = 3;
    
    int i = a;

    do
    {
      System.out.println("i = " + i);
      i = i + c;
      
    } while (i < b);
    
    System.out.println("Petla wykonana, i = " + i + ".");
  }
}
i = -7
i = -4
Petla wykonana, i = -1.
Press any key to continue...

Zadanie Dokonaj analizy programu PetlaDoWhile2.

a = -7
b = -3
c = 3

i = -7

"i = -7"
i = -7 + 3 = -4   -4 < -3   "i = -4"
                            i = -4 + 3 = -1
                  -1 < -3   false
          
"Petla wykonana, i = -1."
/* PetleZagniezdzone.java

Przyjmijmy, że:

I to zbiór wartości zmiennej sterującej i, dla których wchodzimy do ciała pętli zewnętrznej.
J to zbiór wartości zmiennej sterującej j, dla których wchodzimy do ciała pętli wewnętrznej.

Do ciała pętli zewnętrznej wchodzimy z wartościami zmiennej sterującej i od 1 do 2.
Do ciała pętli wewnętrznej wchodzimy z wartościami zmiennej sterującej j od 2 do 4.

A zatem:

I = {1,2}
J = {2,3,4}

Można powiedzieć, że program PetleZagniezdzone wyznacza iloczyn kartezjański zbiorów I x J.

I x J = {(1,2), (1,3), (1,4), (2,2), (2,3), (2,4)}
*/

public class PetleZagniezdzone
{
  public static void main(String[] args)
  {
    for (int i = 1; i <= 2; i++)
    {
      for (int j = 2; j <= 4; j++)
      {
        System.out.println("i = " + i + "  j = " + j);
      }
      System.out.println();
    }
  }
}

// po wykonaniu pętli wewnętrznej pojawi się odstęp
i = 1  j = 2
i = 1  j = 3
i = 1  j = 4

i = 2  j = 2
i = 2  j = 3
i = 2  j = 4

Press any key to continue...

Strona główna