Mobil Programlama

Android

DERS PROGRAMI
Android 101 Ders Programı

for Döngüsü

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

 

for deyimi ve for deyimi kullanılarak oluşturulacak döngü yapısı, işlemlerin tekrar sayısının önceden belli olduğu durumlarda kullanılır.


for deyiminin yazılışı:

 

for(ifade1;ifade2;ifade3)  Deyim;
            Deyim_x;

 

veya

 

for(ifade1;ifade2;ifade3)
           { Deyim1;
             Deyim2;
               ...
             Deyim_n;
           }
           Deyim_x;

 

şeklindedir.

  1. İlk olarak ifade1 hesaplanır; bu genellikle bir ya da daha fazla değişkene ilk değeri veren bir atama deyimidir.
  2. Sonra ifade2 hesaplanır. Bu, deyimin koşulsal kısmıdır.
  3. ifade2 yanlışsa, programın kontrolü for deyiminden çıkar ve program akışı programdaki bir sonraki deyime geçer (deyim_x). Eğer ifade2 doğru ise, deyim veya deyimler grubu uygulanır.
  4. Deyim ya da blok yapılı şekilde deyimler grubu çalıştırıldıktan sonra, ifade3 çalıştırılarak hesaplanır. O zaman çevrim yine geriye, ifade2'ye döner.

İfade1 sadece bir kez çalıştırılır; ifade2 ve ifade3 ise, çevrimin her tekrarında (iteration) çalışıtırılır.

 

for deyimini anlamanın en iyi yolu, onu aşağıda olduğu gibi while deyimiyle karşılaştırmaktır.

 

for (ifade1; ifade2; ifade3)
deyim;

 

yapısı

 

ifade1;
while (ifade2)
{
    deyim;
    ifade3;
}

 

yapısı ile tamamen aynıdır.

 

Aşağıda basit bir örnek ile for döngü yapısını daha iyi anlamaya çalışalım:

 

ÖRNEK: for İLE TAM SAYILAR TOPLAMININ BULUNMASI



import java.util.Scanner;

public class PozTop{
    public static void main(String args[]) {
        Scanner giris = new Scanner(System.in);
        int n, toplam;
        int i;

        System.out.println("Kaca kadar sayilar toplansin? ");
        n = giris.nextInt();

        toplam = 0;

        for (i = 1; i <= n; i++) {
            toplam += i;
        }

        switch (n) {
        case 1 :
            System.out.println("\n" + n + "=" + toplam);
            break;

        case 2 :
            System.out.println("\n1+" + n + "=" + toplam);
            break;

        case 3 :
            System.out.println("\n1+2+" + n + "=" + toplam);
            break;

        case 4 :
            System.out.println("\n1+2+3+" + n + "=" + toplam);
            break;

        default :
            System.out.println("\n1+2+3+..+" + n + "=" + toplam);
        }
    }
}

PROGRAMIN ÇIKTISI

 

Bu programda, for’un başlangıç koşulunu belirleyen ve ifade1 olarak belirttiğimiz ifade i=1 şeklindedir ve bu for döngüsünün parametresi diyebileceğimiz i değişkenine 1 değerini bir ilk değer olarak atamaktadır.

İfade2 ise, i <= n şeklinde bir koşul ifadesidir. i değişkeninin değeri n’den küçük ya da n’ye eşit olduğu sürece döngü sürecektir.

İfade3 ise i = i + 1 şeklinde bir artım ifadesidir ve döngünün her tekrarında i değişkeninin değerini 1 arttıracaktır.

 

Aşağıdaki tabloda döngü süresince i ve toplam değişkenlerinin değerlerinin nasıl değişeceğine bakalım:

ÇEVRİM ADIMI        i      Toplam 
Başlangıç, çevrim öncesi   0
1 1 1
2 2 3 (1+2)
3 3 6 (1+2+3)
4 4 10 (1+2+3+4)
5 5 15 (1+2+3+4+5) 

 

Aşağıdaki program parçasında görüldüğü gibi,

 

for(i=1; i<=n; i=i+1) {
    toplam=toplam+i;
}
System.out.println("\n1+2+3+..+"+n+"="+toplam); 
System.out.println("\ni="+i);

 

döngüden çıkınca i’nin değeri yazdırılırsa,

i=6

değeri görünecektir.

 

ÖRNEK: FAKTÖRİYEL HESABI

for döngüsünü kullanacağımız diğer bir örnek program ise faktöriyel hesabı programı olacaktır. Matematikte faktöriyel bilindiği gibi,

n!=1.2.3...n

şeklinde tanımlanır; yani n sayısının faktöriyeli 1’den n’ye kadar tam sayıların çarpımına eşittir. Aşağıda, faktöriyel hesabıyla ilgili Java programı ve bu program içindeki değişkenlerin programın çalıştırılması sırasındaki değişimlerini gösteren tablo yer alıyor:

 

KOD BLOĞU:



import java.util.Scanner;

public class Faktoriyel{
    public static void main(String args[]){
        Scanner giris = new Scanner(System.in);
        int n, fakt;
        int i;

        System.out.println("Kacin faktoriyeli bulunacak? ");
        n = giris.nextInt();

        fakt = 1;

        for (i = 1; i <= n; i++) {
            fakt = fakt * i;
        }

        switch (n) {
        case 1 :
            System.out.println("\n" + n + "=" + fakt);
            break;

        case 2 :
            System.out.println("\n1*" + n + "=" + fakt);
            break;

        case 3 :
            System.out.println("\n1*2*" + n + "=" + fakt);
            break;

        case 4 :
            System.out.println("\n1*2*3*" + n + "=" + fakt);
            break;

        default :
            System.out.println("\n1*2*3*..*" + n + "=" + fakt);
        }
    }
}

PROGRAMIN ÇIKTISI:

 

Faktöriyel Programındaki Değişkenlerin Programın Çalıştırılması Sırasındaki Değişimlerini Gösteren Tablo

fakt  n        
Çevrim Öncesi 1 5
1 1 5
2 2(1*2) 5
3 6(1*2*3) 5
4 24(1*2*3*4) 5
5 120(1*2*3*4*5) 5

 

 

ÖRNEK: ALTERNE SERİ TOPLAMI

 

1.2/(3.4)­ - 5.6/(7.8) + 9.10/(11.12)­ - 13.14/(15.16)


şeklindeki alterne seri toplamını hesaplayalım. (Yukardaki ifadede "." sembolü çarpma işlemi anlamındadır.)

 

KOD BLOĞU:

public class Alterne {
    public static void main(String args[]){
        int i,p;
        double x,s;
        s=0;
        p=1;
        x=1.0;
        for (i=1;i<=4;i++)
        {
            s=s+(x*(x+1))/((x+2)*(x+3))*p;
            x=x+4;
            p=-p;
        }
        System.out.println("Toplam= "+s);
    }
}

PROGRAMIN ÇIKTISI:

 

 

Programın Çalıştırılması Sırasında Alterne Seri Programındaki Değişkenlerin Değişimlerini Gösteren Tablo
    x     p           
Çevrim öncesi 1.0 0 1
1 1.0 (1.2)/ (3.4) 1
2 5.0 (1.2)/ (3.4) – (5.6)/ (7.8) –1
3 9.0 (1.2)/ (3.4) – (5.6)/ (7.8) +(9.10)/ (11.12) 1
4 13.0 (1.2)/ (3.4) – (5.6)/ (7.8) +(9.10)/ (11.12) – (13.14)/(15.16) –1

 

AÇIKLAMA:

Sadece 4 terim olduğu için for döngüsü 1’den 4’e kadar çalıştırıldı. İlk terim 1.2/ (3.4) ve ikinci terim 5.6/(7.8) olduğu için, x değişkeninin ilk terimdeki ilk sayıyı temsil ettiği durumda, terimi x.(x+1)/((x+2).(x+3)) şeklinde ifade edebiliriz. x yerine 1 koyarak bu durum kolayca kanıtlayabiliriz. İkinci terimde ilk sayı 5,  üçüncü terimde ilk sayı 9 olduğuna göre x her seferinde 4 arttırılmalıdır. Bunu da programda x=x+4; deyimiyle gerçekleştiriyoruz. Bu terimi x+=4; şeklinde de yazabiliriz.

Seri alterne seri olduğuna göre, yani terimlerin işaretleri +,–,+,– şeklinde değiştiğine göre, p değişkeni yardımıyla terimlerin işaretlerini ayarlayabiliriz. p önce 1 olarak atanır. Sonra döngü içine konulan p=p; ifadesi ise bir sonraki işareti , bir sonrakini + ve onu izleyeni yapar. (Programı kâğıt üzerinde adım adım izleyelim).