Java’da Döngüler

Bu yazıda sizlere JAVA’da yinelenen işlemlerin gerçekleştirildiği döngülerin neler olduğundan ve nasıl kullanıldığından bahsedeceğim. Genel olarak yazı içerisinde For ve while döngülerini inceleyeceğiz.

JAVA’da kod yazarken kodlarımızın içerisinde yinelenen işlemler olabilir. Örneğin 1’den 10’a kadar olan sayıları ekrana yazdırmak istediğimizi düşünelim. Bu durumda döngü kullanmadan 10 kez system.out.println() fonksiyonunu kullanmamız gerekir. Örnek olarak:

INPUT:

public class Main {
    public static void main(String[] args) {
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
        System.out.println(5);
        System.out.println(6);
        System.out.println(7);
        System.out.println(8);
        System.out.println(9);
        System.out.println(10);
    }
}

OUTPUT:

1
2
3
4
5
6
7
8
9
10

Ancak bu işlemi manuel olarak gerçekleştirmek bizim için ideal değildir çünkü kodlarımızı yazarken aynı işlemleri içeren kod satırlarını elle tekrar tekrar yazmamız gerekir. Bu hem zamandan kaybetmemize hem de yazdığımız kodun daha karışık ve uzun hale gelmesine yol açacaktır. Dolayısıyla, hem kodlarımızı daha az çaba harcayarak yazmalıyız hem de daha az kod satırı ile daha çok işlem gerçekleştirebiliyor olmalıyız. Bu sebeple yinelenen işlemlerde döngüleri kullanırız. Döngülerin amacı, aynı veya benzer kodu birkaç kez tekrarlamaktır. Bu tekrarlama belirli bir sayı kadar ya da bir koşul sağlanana kadar sürebilir. JAVA’da iki çeşit döngü mevcuttur. Bunlar for döngüsü ve while döngüsüdür.

İlk olarak while döngüsünden bahsedelim.

WHILE Döngüsü

While döngüsü, döngüde yazdığımız şart doğru olduğu sürece kod bloğu içerisindeki işlemleri gerçekleştirmeye devam eden döngü tipidir. While döngüsü aşağıdaki gibi yazılır:

public class Main {
    public static void main(String[] args) {
        while (kosul) {
            //Yazılan koşulun değeri true ise çalıştıralacak kod bloğu
        }

    }
}

While döngüsünün kullanımına ilişkin örnekler aşağıdaki gibidir:

INPUT:

public class Main {
    public static void main(String[] args) {
        int i = 0;
        while (i < 5) {
            System.out.println("i değeri : " + i);
            i += 1;
         }

    }
}

OUTPUT:

i değeri : 0
i değeri : 1
i değeri : 2
i değeri : 3
i değeri : 4
INPUT:

public class Main {
    public static void main(String[] args) {
        boolean deger = true;
        int sonuc = 0;
        while (deger == true) {
            sonuc += 3;
            if(sonuc > 40) {
                System.out.println("Limit Değere Aşıldı! Son Değer : " + sonuc);
                deger = false;
            }
            }
         }

    }

OUTPUT: 

Limit Değere Aşıldı! Son Değer : 42

While döngüsünde, koşul doğru ise kod bloğu çalışır.  Eğer döngüde yazılan şartın doğru ya da yanlış olduğuna bakılmaksızın kod bloğunun en az bir kez çalıştırılmasını istersek dowhile döngüsünü kullanmamız gerekir. Dowhile döngüsünün kullanımı ve mantığı while döngüsüne benzerdir. Ancak farkı, şartın durumuna bakmaksızın kod bloğunu bir kez çalıştırır. Dowhile döngüsü aşağıdaki gibi yazılır:

public class Main {
    public static void main(String[] args) {
        do {
            //çalıştırılmak istenen kod bloğu
        }
        while (kosul);

         }

    }

Dowhile döngünün kullanımına ilişkin örnek aşağıdaki gibidir:

INPUT:

public class Main {
    public static void main(String[] args) {
        int toplam = 0;
        do{
            System.out.println("Toplam : " + toplam);
            toplam += 10;
        }while(toplam < 100);
        }
}

OUTPUT:

Toplam : 0
Toplam : 10
Toplam : 20
Toplam : 30
Toplam : 40
Toplam : 50
Toplam : 60
Toplam : 70
Toplam : 80
Toplam : 90
INPUT:

import java.util.Scanner;

public class Main
{
	public static void main(String[] args) {
     int sayi1, sayi2, i, enBuyuk, enKucuk;
     
     Scanner input = new Scanner(System.in);
     
     System.out.println("Lutfen ilk sayiyi giriniz : ");
     sayi1 = input.nextInt();
     
     System.out.println("Lutfen ikinci sayiyi giriniz : ");
     sayi2 = input.nextInt();     
     
     int k = 2;
     i = 2;
     enBuyuk = 1;
     while(sayi1 >= i){
         
         if((sayi1 % i == 0) && (sayi2 % i == 0)){
                 enBuyuk = i;
         }
         
         i++;
     }
     
     enKucuk = (sayi1 * sayi2) / enBuyuk;
     
     System.out.println("En buyuk ortak bolen : " + enBuyuk);
     System.out.println("En kucuk ortak bolen : " + enKucuk);
	}
}

OUTPUT:

Lutfen ilk sayiyi giriniz : 
60
Lutfen ikinci sayiyi giriniz : 
70
En buyuk ortak bolen : 10
En kucuk ortak bolen : 420
For Döngüsü

For döngüsü, yazılan kod bloğunun istenilen sayı kadar yinelenmesini istediğimiz durumlarda kullanılan döngü tipidir. For döngüsü aşağıdaki gibi yazılabilir:

public class Main {
    public static void main(String[] args) {
        for (baslangıcDegeri; dongununDevamınıSaglayanSart; ArtısAzalısDegeri) {
            //çalıştırılmak istenen kod bloğu
        }

        }
}

For döngüsü yazılırken, döngü içerisindeki ilk alana bir değişken tanımlanır ve başlangıç noktası verilir. Ardından hangi koşul sağlanana kadar döngünün devam etmesi gerektiği yazılır. Son olarak, döngü her sonlandığında, başlangıç noktasından nasıl ilerleme ya da gerileme yapılacağı belirtilir. Bu değerlere göre for döngüsü çalışır ve istenilen işlemleri gerçekleştirir. For döngüsünün kullanımına ait aşağıdaki örnekleri inceleyebiliriz:

INPUT:

public class Main
{
    public static void main(String[] args) {

        boolean sorgu = true;

        for(int i = 2; i <= 100; i++){

            for(int k = 2; k < i; k++){

                if(i %k == 0){
                    sorgu = false;
                }
            }
            if(sorgu == true){
                System.out.print(" " + i);
            }
            sorgu = true;
        }
    }
}

OUTPUT:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
INPUT:

import java.util.Scanner;

class HelloWorld {
    public static void main(String[] args) {
        int deger, us, sonuc;

        Scanner input = new Scanner(System.in);

        System.out.print("Lutfen bir deger giriniz : ");
        deger = input.nextInt();

        System.out.print("Lutfen bir us degeri giriniz : ");
        us = input.nextInt();

        sonuc = 1;

        for(int i = 0; i < us; i++){

            sonuc *= deger;

        }

        System.out.println("Sonuc : " + sonuc);

    }
}

OUTPUT:

Lutfen bir deger giriniz : 6
Lutfen bir us degeri giriniz : 2
Sonuc : 36

For döngüsü, bir başlangıç noktasından belirtilen koşul altında bir bitiş noktası boyunca belirli bir kod bloğunu tekrar tekrar çalıştırmanın dışında diziler üzerinde de kullanılabilir. Dizi üzerinde yazdığımız for döngüsü, dizinin her bir elemanını dolaşır ve istediğimiz işlemleri dizi elemanları üzerinde gerçekleştirir. Bu tip bir for döngüsünün kullanımı aşağıdaki gibidir:

class HelloWorld {
    public static void main(String[] args) {
        for (VeriTipi degiskenIsmı : diziIsmı) {
            //Çalıştırılması istenen kod bloğu
        }

    }
}

Yukarı yazdığımız for döngüsü tipine ait örnekler aşağıdaki gibidir:

INPUT:

class HelloWorld {
    public static void main(String[] args) {
      String[] dizi = {"Ahmet", "Mehmet", "Ali","Ayşe","Cansu","Gizem"};
      for(String eleman:dizi){
          if (eleman == "Ayşe"){
              System.out.println("Dizide " + eleman + " elemanına erişildi!");
              break;
          }
      }
    }
}

OUTPUT:

Dizide Ayşe elemanına erişildi!

Bu yazımızda son olarak while ve for döngüsünde kullanabileceğimiz break ve continue komutlarını kullanışlarından bahsedeceğiz. Break komutunun switchcase yapısında ne amaçla ve nasıl kullanıldığı görmüştük. Döngülerde de break komutunun kullanılma mantığı aynıdır.

Döngü içerisinde belli bir koşul sağlanmışsa ya da belli bir değere geldiğimizde döngünün sonlanmasını isteyebiliriz. Bu durumda döngü içerisinde break komutunu kullanabiliriz. Break komutu çalıştığı anda, döngünün devam etmesi gerekse bile döngüden çıkış yapılacaktır.

Örneğin, içerisinde 4 adet isim olan {“Ahmet”, “Mehmet”, “Ayşe”, “Fatma”} kümesini düşünelim. Bu küme üzerinde bir döngü yazalım. Öyle ki döngü, dizi içerisinde Ayşe ismine uğradığında döngüden çıkış yapsın. Bu döngüyü aşağıdaki gibi yazabiliriz:

INPUT:

public class Main {
    public static void main(String[] args) {
        String[] isimler = {"Ahmet", "Mehmet", "Ayşe", "Fatma"};
        for (String i : isimler) {
            if (i == "Ayşe"){
                System.out.println("Şu anki değer Ayşe olduğundan döngüden çıkıldı.");
                break;
            }else{
                System.out.println(i);
            }
        }
    }
}

OUTPUT:

Ahmet
Mehmet
Şu anki değer Ayşe olduğundan döngüden çıkıldı.

Yukarıda da görüldüğü gibi döngünün uğraması gereken Fatma ismi varken Ayşe’ye denk geldiğinde döngüden çıkıldı ve Fatma ismine hiç uğramadı.

Bu gibi durumlarda döngüden çıkılması istenirse break komutu kullanılabilir.

Continue komutu ise döngünün içerisinde herhangi değere ya da koşula denk gelindiğinde döngünün o basamağını atlamak için kullanılır. Döngü continue çalıştırdığı anda o an ki döngü basamağını atlar ve işlemleri gerçekleştirmeden sonraki döngü adıma geçiş yapar. Sonraki döngü adımında eğer continue’u içeren bloğa girmezse döngü bloğundaki işlemleri gerçekleştirir.

Örneğin, basit olarak 1’den 10’a kadar ekrana yazı yazdırmayı düşünelim. Ekrana bu sayıları yazdırırken 5 sayısının ekrana yazılmadan atlanmasını ve diğer sayıların ekrana yazılmasının devam etmesini isteyelim. Continue komutunu kullanarak bu isteği aşağıdaki gibi gerçekleştirebiliriz:

INPUT:

public class Main {
    public static void main(String[] args) {
    for(int i = 0; i <= 10; i++){
        if (i == 5){
            continue;
        }
        System.out.println(i);
    }
    }
}

OUTPUT:

0
1
2
3
4
6
7
8
9
10

Yazımızı for ve while döngüleri için birkaç örnek daha yaparak sonlandıralım.

INPUT:

import java.util.Scanner;

class HelloWorld {
    public static void main(String[] args) {
        int deger,toplam, basamak, deger1;

        Scanner input = new Scanner(System.in);
        System.out.print("Sayi Giriniz : ");
        deger = input.nextInt();

        deger1 = deger;
        toplam = 0;

        while (deger1 != 0) {
            basamak = deger1 % 10;
            toplam += basamak;
            deger1 /= 10;
        }

        System.out.println("Basamaklar toplami : " + toplam);
    }
}

OUTPUT:

Sayi Giriniz : 16
Basamaklar toplami : 7
INPUT:

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int ilkSayi = 0, ikinciSayi = 1, toplam,deger;
        System.out.print("N Sayısını Girin:");
        deger = input.nextInt();
        System.out.print(ilkSayi+" "+ikinciSayi);

        for(int i = 2 ; i < deger + 1; ++i){
            toplam = ilkSayi + ikinciSayi;
            System.out.print(" "+toplam);
            ilkSayi = ikinciSayi;
            ikinciSayi = toplam;

        }
        System.out.println();
    }

}

OUTPUT:

N Sayısını Girin:8
0 1 1 2 3 5 8 13 21
INPUT:

import java.util.Scanner;

public class Main
{
    public static void main(String[] args) {


        Scanner input = new Scanner(System.in);

        System.out.print("Lutfen kac sayi girilecek? : ");
        int n = input.nextInt();

        System.out.print("Lutfen deger giriniz : ");
        int ilkDeger = input.nextInt();

        int enKucuk = ilkDeger;
        int enBuyuk = ilkDeger;
        for(int i = 0; i < n-1; i++){

            System.out.print("Lutfen deger giriniz : ");
            int deger = input.nextInt();

            if(deger > enBuyuk){
                enBuyuk = deger;
            }
            if(deger < enKucuk){
                enKucuk = deger;
            }
        }
        System.out.println("En buyuk deger : " + enBuyuk);
        System.out.println("En kucuk deger : " + enKucuk);
    }
}

OUTPUT:

Lutfen kac sayi girilecek? : 5
Lutfen deger giriniz : 15
Lutfen deger giriniz : 45
Lutfen deger giriniz : 321
Lutfen deger giriniz : 54
Lutfen deger giriniz : 34
En buyuk deger : 321
En kucuk deger : 15
INPUT:

import java.util.Scanner;

class Patika_Java_101 {
    public static void main(String[] args) {
        int nBitis;
        double toplam;

        Scanner input = new Scanner(System.in);

        System.out.print("Lutfen n sayisinin bitis degerini yaziniz : ");
        nBitis = input.nextInt();

        toplam = 0;

        for(double i = 1; i <= nBitis; i++){
            toplam += (1/i);
        }

        System.out.println("Harmonik Toplam : " + toplam);

    }
}

OUTPUT:

Lutfen n sayisinin bitis degerini yaziniz : 6
Harmonik Toplam : 2.4499999999999997

JAVA’da dizilerden bahsettiğimiz bir sonraki yazımıza buradan ulaşabilirsiniz.

JAVA9US7B9AB2H5L3R
Java’da If-Else Blokları
If – Else Blokları

Bu yazıda sizlere JAVA’da koşul bloklarını kullanabilmemizi sağlayan ifelse ve switchcase bloklarından bahsedeceğim. ifelse blokları diğer programlama dillerinde olduğu gibi JAVA’da da sık sık kullanılan ve önemli bir yere sahip ifadelerdir. ifelse blokları sayesinde yazdığımız kodlar içerisine koşullara bağlı farklı çıktı veren ya da farklı işlemler gerçekleştiren kod blokları ekleyebiliriz.

ifelse blokları, programcı tarafından mantıksal bir boolean koşulunun doğru ya da yanlış olmasına göre belirtilen eylemleri gerçekleştirmeye yarayan özelliktir. ifelse bloklarının JAVA’daki kullanımları aşağıdaki gibidir:

if (kosul1) {

  //kosul1 koşulunun true olması durumunda çalıştırılacak kod bloku

}else if (kosul2) {

  //kosul1 koşulunun false ve kosul2 kosulunun true olması durumunda çalıştırılacak kodu bloku

}else{

  //kosul1 koşulunun false ve kosul2 kosulunun false olması durumunda çalıştırılacak kodu bloku

}

Eğer ki yazdığımız kodun tek bir koşul altında farklı bir aksiyon göstermesini istiyorsak sadece if bloğunu da kullanabiliriz. Örneğin, verdiğimiz bir sayı karşılığında programın o sayının çift olduğu durumlarda dışarıya “Bu bir çift sayıdır.” yazmasını isteyelim. Diğer durumlarda programın herhangi bir aksiyon göstermemesini isteyelim. Bu durumda aşağıdaki gibi bir kod bloğu isteğimizi gerçekleştirebilir.

INPUT:

public class Main {
    public static void main(String[] args) {
        int A = 4;

        if (A % 2 == 0){
            System.out.println("Girdiğiniz sayı çift sayıdır");
        }

        }
}

OUTPUT:

Girdiğiniz sayı çift sayıdır.

Aynı zamanda aynı if bloğu içerisinde birden fazla koşula bağlı kodlar da yazabiliriz. Bunun için else if bloğunu devreye sokabiliriz. Yukarıdaki örneği çift sayıların dışında tek sayılar girildiğinde de “Bu bir tek sayıdır.” cümlesini ekrana gösterecek şekilde güncelleyelim. Böylece bu örnek için 3 koşul yazmamız gerekecektir. Bunlardan ilki verilen sayının çift olduğu durumdur, ikincisi, sayının tek olduğu durumdur ve sonuncusu ise verilen sayının bu iki koşulu da sağlamayan bir sayı olması durumudur. Örneğin verdiğimiz sayı bir ondalıklı sayı olabilir. Bu durumda bu sayı için 3. koşul devreye girer. Örneği aşağıdaki kod bloğu ile inceleyelim.

INPUT: 

public class Main {
    public static void main(String[] args) {
        double A = -5.2;

        if (A % 2 == 0){
            System.out.println("Girdiğiniz sayı çift sayıdır.");
        } else if (A % 2 == 1 || A % 2 == -1) {
            System.out.println("Girdiğiniz sayı tek sayıdır.");
        }else{
            System.out.println("Girdiğiniz sayı tam sayı değildir!");
        }

    }
}

OUTPUT:

Girdiğiniz sayı tam sayı değildir!

else ifadesi, yazdığımız if ve else if bloklarının hepsinin False olduğu durumda devreye girer ve hiçbir koşulun sağlanmadığı durumlarda alması istenilen aksiyonları gerçekleştirir.

ifelse bloklarında eğer ki ilk if koşulu sağlanırsa, koşul sağlandığında gerçekleştirilecek işlemler gerçekleştirilir ve ifelse bloğundan çıkılır.  if koşulu sağlanmazsa, if bloğundan sonra varsa else if bloğu true ise çalıştırılır ancak false ise ve başka else if bloğu varsa o çalıştırılır. Hiçbir else if bloğu true olmazsa ve else bloğu varsa else bloğu çalıştırılarak program sonlandırılır. Yani ifelse blokları yukarıdan aşağı olacak şekilde ifelse if – else yolu izlenerek çalıştırılır.

if bloğunu çalıştırırken dikkat etmemiz gereken noktalardan biri de if’in yazılış şeklidir. Eğer ki “İf” ya da “İF” şeklinde yazacak olursak if bloğu çalışmaz ve çıktı olarak bize hata döndürür. Kod bloğunda “if” şeklinde yazılmalıdır.

INPUT:

public class Main {
    public static void main(String[] args) {
        int A = 3;
        int B = 5;
        int C = 7;

        if (A > B && A > C && B > C){
            System.out.println("En büyük değer : " + A + " Ortanca değer : " + B + " En küçük değer : " + C);
        } else if (A > B && A > C && C > B) {
            System.out.println("En büyük değer : " + A + " Ortanca değer : " + C + " En küçük değer : " + B);
        } else if (B > A && B > C && C > A) {
            System.out.println("En büyük değer : " + B + " Ortanca değer : " + C + " En küçük değer : " + A);
        } else if (B > A && B > C && A > C) {
            System.out.println("En büyük değer : " + B + " Ortanca değer : " + A + " En küçük değer : " + C);
        } else if (C > B && C > A && A > B) {
            System.out.println("En büyük değer : " + C + " Ortanca değer : " + A + " En küçük değer : " + B);
        }else{
            System.out.println("En büyük değer : " + C + " Ortanca değer : " + B + " En küçük değer : " + A);
        }

    }
}

OUTPUT:

En büyük değer : 7 Ortanca değer : 5 En küçük değer : 3

ifelse bloklarının dışında koşul blokları oluşturmak için switchcase bloklarını da kullanabiliriz.

Switch-Case Blokları

Eğer birden fazla koşul içeren kod blokları yazmak istersek ifelse blokları dışında switchcase kod bloklarını da kullanabiliriz. Bu kod bloklarının çalışma mantığı ifelse’e benzer olup sonucu true olan koşulun bloğu çalıştırıldıktan sonra blok sonlandırılır. Switchcase kullanımı aşağıdaki gibidir:

INPUT:

switch(expression) {

case x:

  //Koşul sağlandığında çalıştırılacak kod bloğu

case y:

  //Koşul sağlandığında çalıştırılacak kod bloğu

}

Switchcase kullanımı daha kolay anlayabilmek için aşağıdaki örneği inceleyebiliriz.

INPUT:

public class Main {
    public static void main(String[] args) {
        int gun = 4;
        switch(gun) {

            case 1:

                System.out.println("Pazartesi");
                break;

            case 2:

                System.out.println("Salı");
                break;

            case 3:

                System.out.println("Çarşamba");
                break;

            case 4:

                System.out.println("Perşembe");
                break;

            case 5:

                System.out.println("Cuma");
                break;

            case 6:

                System.out.println("Cumartesi");
                break;

            case 7:

                System.out.println("Pazar");
                break;
        }

    }
}

OUTPUT:

Perşembe

Birden çok koşulun dahil olduğu switchcase bloklarında bir koşul sağlandıktan ve sağlanan koşulun kod bloğu çalıştırıldıktan sonra, kod bloğundan çıkılmasını istersek break komutunu kullanabiliriz. Bu ifade ile birlikte blok içerisinde daha fazla kod çalıştırılmasının önüne geçebiliriz. Break komutunun kullanımına dair yukarıdaki örneği inceleyebiliriz.

Break komutunu bize kod bloğunun çalıştırılma süresinden kazanç sağlayabilir. Bunun sebebi sadece sonucu true olan koşulun kodunun çalıştırılmasından ve diğer blokların atlanmasından dolayıdır.

Break komutunun dışında switchcase bloklarında hiçbir koşulun sağlanmadığı durumlar için default anahtar kelimesini kullanabiliriz. Bu anahtar kelime, hiçbir koşul sağlanmadığında varsayılan olarak çalıştırılması istenen kod satırlarını içerebilir. default komutu switchcase bloklarının en sonunda kullanılırsa break komutu ile beraber çalıştırılmasına gerek yoktur. default komutunun kullanımına dair örneği aşağıda inceleyebilirsiniz.

INPUT:

public class Main {
    public static void main(String[] args) {
        String sehir = "Sivas";
        switch(sehir) {

            case "İstanbul":

                System.out.println("Marmara Bölgesi");
                break;

            case "İzmir":

                System.out.println("Ege Bölgesi");
                break;

            case "Antalya":

                System.out.println("Akdeniz Bölgesi");
                break;

            case "Samsun":

                System.out.println("Karadeniz Bölgesi");
                break;

            default:

                System.out.println("Girmiş olduğunuz şehir başka bir bölgeye aittir.");
                break;
        }

    }
}

OUTPUT:

Girmiş olduğunuz şehir başka bir bölgeye aittir.

ifelse ve switchcase dışında kısa koşul ifadeleri ile de koşul blokları oluşturmamız mümkündür. Önceki yazılarımızda da bahsettiğimiz bu yöntemin kullanılışı aşağıdaki gibidir:

degisken = (kosul) ? dogruİfade :  Yanlısİfade;

Yukarıda da görüldüğü gibi bu ifade üç işlenenden oluştuğundan üçlü operatör olarak da isimlendirilebilir.

INPUT:

public class Main {
    public static void main(String[] args) {
     //degisken = (kosul) ? dogruİfade :  Yanlısİfade;

        String kelime1 = "Edirne";
        String kelime2 = "Ankara";

        String degisken = (kelime1.length() == kelime2.length()) ? ("İki kelimenin uzunluğu aynıdır.") : ("İki kelimenin uzunluğu aynı değildir.");
        System.out.println(degisken);

    }
}

OUTPUT:

İki kelimenin uzunluğu aynıdır.

Bu yazımızda sizlere JAVA’da kullanabileceğimiz koşul bloklarından bahsettim. Bir sonraki yazımızda JAVA’dan bahsetmeye devam edeceğiz.

JAVAVBZ0921LHO19WO
Java’da Operatörler

Bu yazıda sizlere JAVA’da kullanılan operatörlerden bahsedeceğim. Genel olarak yazı içerisinde mantıksal, aritmetiksel, koşul, atama ve karşılaştırma operatörlerine ve örneklerine değineceğim.

Operatörler

Operatörler, JAVA’da pek çok işlem esnasında kullanabileceğimiz ifadelerdir. Operatörler sayesinde matematiksel işlemler, değişkenlerin sahip olduğu değerleri karşılaştırma işlemi veya mantıksal işlemleri gerçekleştirebiliriz.

JAVA’da operatörleri aşağıdaki gibi ifade edebiliriz:

  • Mantıksal Operatörler
  • Aritmetik Operatörler
  • Karşılaştırma Operatörleri
  • Atama Operatörleri

Yukarıda yer alan operatör grupları içerisindeki operatörleri tablolar halinde ifade edeceğiz. Ardından operatörlerin kullanımlarına ilişkin örnekleri inceleyeceğiz.

Karşılaştırma Operatörleri

Karşılaştırma Operatörleri iki değeri karşılaştırmak için kullanılır. Aşağıdaki tabloda karşılaştırma operatörlerini görebilirsiniz.

OperatörAçıklama
==Eşittir
!=Eşit değil
Büyüktür
Küçüktür
>=Büyük ya da eşit
<=Küçük ya da eşit

Yukarıdaki tabloda yer alan karşılaştırma operatörlerini kullandığımızda çıktı olarak True ya da False ifadelerini görürüz. Bu yaptığımız karşılaştırmanın doğru olduğunu ya da yanlış olduğunu ifade eder. Örnek vermek gerekirse girdi olarak 6 > 7 ifadesini verirsek çıktı olarak False değerini alırız. Bu 6’nın 7’den büyük olmadığını ifade eder.

Tabloda yer alan operatörlerin kullanımlarına ilişkin örnekler aşağıdaki gibidir:

INPUT:

public class Main {
    public static void main(String[] args) {
        int sayi1 = 5;
        int sayi2 = 1;

        System.out.println(sayi1==sayi2);
        System.out.println(sayi1!=sayi2);
        System.out.println(sayi1>sayi2);
        System.out.println(sayi1<sayi2);
        System.out.println(sayi1>=sayi2);
        System.out.println(sayi1<=sayi2);
    }
}

OUTPUT:

false
true
true
false
true
false

Atama Operatörleri

JAVA’da bir değişkene değer atamak için atama operatörlerini kullanılır. Sol tarafta yazılan değişkene sağ tarafta yazılan değer atanır. Başlıca atama operatörleri tablodaki gibidir:

OperatörÖrnekAçıklama
=x = 10x’e 10’u atar.
+=x += 10x’e 10 ekler.
-=x -= 10x’ten 10 çıkarır.
*=x *= 10x’i 10 ile çarpar.
/=x /= 10x’i 10’a böler.
%=x %= 10x’in 10 ile bölümünden kalanı x’e atar.
INPUT:

public class Main {
    public static void main(String[] args) {
        int sayi1 = 10;

        System.out.println(sayi1 += 10);
        System.out.println(sayi1 -= 10);
        System.out.println(sayi1 *= 10);
        System.out.println(sayi1 /= 10);
        System.out.println(sayi1 %= 10);

    }
}

OUTPUT:

20
0
100
1
0

Aritmetiksel Operatörler

Aritmetiksel operatörler, çoğunlukla matematiksel işlemleri gerçekleştirmek için kullanılan operatörlerdir. Bunun dışında string ifadelerin toplanması gibi işlemlerde de aritmetiksel operatör kullanılabilir. Aritmetiksel operatörleri aşağıdaki tabloda görebiliriz.

OperatörİsimKullanımı
+Toplamaa + b
Çıkartmaa – b
*Çarpmaa * b
/Bölmea / b
%Mod Almaa % b
INPUT:

public class Main {
    public static void main(String[] args) {
        int sayi1 = 4;
        int sayi2 = 2;

        System.out.println(sayi1 + sayi2);
        System.out.println(sayi1 - sayi2);
        System.out.println(sayi1 * sayi2);
        System.out.println(sayi1 / sayi2);
        System.out.println(sayi1 % sayi2);
        }
}

OUTPUT:

6
2
8
2
0

Mantıksal Operatörler

Mantıksal operatörler sayesinde birden fazla koşulun dahil olduğu kod blogları yazabiliriz. Bu operatörler kullanıldığında sonuç olarak True ya da False değerleri döner. Döngülerde ya da ifelse bloklarında mantıksal operatörler sıklıkla kullanılır. Aşağıdaki tablo ile mantıksal operatörleri inceleyebiliriz.

OperatörİsmiAnlamıKullanımı
&&Ve operatörüİki ifade doğruysa True döndürür.A > 5 && A < 10
||Veya operatörüİki ifadeden biri doğruysa True döndürür.A > 5 || A < 10
!Değil operatörüMantıksal durumu tersine çevirir. True ise False döndürür.not(A > 5 && A < 10)
INPUT:

public class Main {
    public static void main(String[] args) {
        int A = 4;
        int B = 2;

        System.out.println(A > 5 && B < 10);
        System.out.println(A > 5 || B < 10);
        System.out.println((!(A > 5 && B < 10)));

        }
}

OUTPUT:

false
true
true

Burada bahsettiklerimizin dışında ifelse bloklarını içermeden nasıl koşul ifadesi içeren kodlar yazabileceğimizden bahsedelim.

JAVA’da yazdığımız kodların belli koşullara göre farklı sonuçlar vermesini ya da farklı işlemler gerçekleştirmesini isteyebiliriz. Bu gibi durumlar ifelse bloklarının dışında koşul operatörlerini kullanabiliriz.

Koşul içeren bir ifadeyi aşağıdaki gibi yazabiliriz:

degisken = (kosul) ? (kosul sonunda True yapılması istenen) : (kosul sonunda False yapılması istenen)

Koşul ifadeleri sayesinde kodumuzu belli şartlara ya da verilere göre çalışabilir hale getirebiliriz. İstenen ya da istenmeyen şartlar altında kodlarımız kullanıcıya nasıl tepki vermesi gerektiğini belirleyebiliriz. Bunların dışında koşul ifadeleri ile birlikte daha büyük ve kompleks kod blokları oluşturabiliriz.

INPUT:

public class Main {
    public static void main(String[] args) {
        int A = 4;
        int B = 2;
        String sonuc = (A > 5 && B < 10) ? ("Bu kosul doğrudur"):("Bu kosul yanlıştır.");
        System.out.println(sonuc);


        }
}

OUTPUT:

Bu kosul yanlıştır.

Bir sonraki yazılarımızda Java’da gerçekleştirilen işlemlerden bahsetmeye devam edeceğiz.

JAVA3N3AQ4SI94U18Z
Java’da Veri Tipleri Ve String Fonksiyonları

Bu yazıda sizlere JAVA’da değişkenleri tanımlarken kullanabileceğimiz veri tiplerinden bahsedeceğim. Genel olarak yazı içerisinde ilkel ve ilkel olmayan veri tiplerinin neler olduğundan bahsedeceğim ve ardından birkaç örnek ile nasıl kullanılabileceklerini göstereceğim.

JAVA’da veri tipleri ikiye ayrılır. Bunlardan ilki JAVA’da varsayılan olarak gelen veri tipleridir. Bu veri tiplerine ilkel veri tipleri denir.

JAVA’da kullanılabilen diğer veri tipleri ise kullanıcı tarafından tanımlanabilen ilkel olmayan veri tipleridir.

Değişkenleri tanımlarken değişkenin veri tipini mutlaka belirtmemiz gerekir. Ayrıca bir değişken hangi veri tipinde tanımlanmışsa o veri tipinde değer ataması gerçekleştirilmelidir. Aksi takdirde programımız çalıştığında hata alacaktır.

İlk olarak JAVA’da varsayılan olarak gelen ilkel veri tiplerinden bahsedelim.

İlkel Veri Tipleri

JAVA’da ilkel olan 8 tane veri tipi vardır. Bunlar byte, short, int, long, float, double, boolean ve char’dır.

Byte: -128’den 127’e kadar olan tamsayıları saklar. Bellek’te 1 bayt boyutunda yer kaplar. byte anahtar kelimesi ile kullanılır.

byte sayi = 2;

Short: -32,768’den 32,767 kadar olan tam sayıları saklar. Bellek’te 2 bayt boyutunda yer kaplar. short anahtar kelimesi ile kullanılır.

short sayi = 30000;

integer: -2,147,483,648’den 2,147,483,647 kadar olan tam sayıları saklar. Bellek’te 4 bayt boyutunda yer kaplar. int anahtar kelimesi ile kullanılır.

int sayi = 50;

long: -9,223,372,036,854,775,808’den 9,223,372,036,854,775,807 kadar olan tam sayıları saklar. Bellek’te 8 bayt boyutunda yer kaplar. Long veri tipindeki bir değişkene değer atanırken değerin sonuna ‘L’ eklenmelidir. long anahtar kelimesi ile kullanılır.

Long sayi = 50L;

float: Ondalık sayıları saklamak için kullanılır. 1.4×10^-45 ile 3.4×10^38 aralığında bir değer tanımlanabilir. Float veri tipindeki bir değişkene değer atanırken değerin sonuna ‘f’ eklenmelidir. Bellek’te 4 bayt boyutunda yer kaplar. float anahtar kelimesi ile kullanılır.

float sayi = 36.70f;

Double: Ondalık sayıları saklamak için kullanılır. 4.9×10^-324 ile 1.8×10^308 aralığında bir değer tanımlanabilir. Bellek’te 8 bayt boyutunda yer kaplar. Double veri tipindeki bir değişkene değer atanırken değerin sonuna ‘d’ eklenmelidir. double anahtar kelimesi ile kullanılır.

double sayi = 36.7054354d;

Boolean: Mantıksal bir veri tipi olan boolean, True ve False olmak üzere iki değere sahiptir. Mantıksal olarak doğru olan duruma True, yanlış olan duruma ise False değeri karşılık gelir. boolean anahtar kelimesi ile kullanılır. Bellek’te 1 bit boyutunda yer kaplar.

boolean statu = true;

Char: Verilen herhangi bir karakterin kendisini ya da ASCII tablosunda karşılık gelen değerini saklamak için kullanılan veri tipidir. Bellek’te 2 bayt boyutunda yer kaplar. char anahtar kelimesi ile kullanılır.

char karakter = ‘C’;

char karakter = 65;

Buraya kadar ki bölümde ilkel veri tiplerinden ve örneklerinden bahsettik. Şimdi ise ilkel olmayan veri tiplerinden bahsedelim.

Java’da tanımladığımız değişkenlerin veri tiplerini öğrenmek için .getClass() metodunu ya da instanceOf ifadesini kullanabiliriz. Böylelikle tanımladığımız değişkenlerin sınıflarını görebiliriz. Örnek kullanım aşağıdaki gibidir:

INPUT:

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.getClass());
    }
}

OUTPUT:

class java.lang.String
INPUT:

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize instanceof String);
    }
}

OUTPUT:

true
İlkel Olmayan Veri Tipleri

Daha öncede bahsettiğim gibi ilkel olmayan veri tipleri JAVA’da tanımlı olmayan programcı tarafından tanımlanan veri tipleridir.  Bu veri tiplerinin örnekleri aşağıdaki şekildeki gibidir:

İlkel Olmayan Veri Tipleri

Biz bu yazımızda sadece String veri tipinden bahsedeceğiz. Diğer başlıklara sonraki yazılarımızda değineceğiz.

String: String, çift tırnak içerisine yazılabilen bir ya da daha fazla harf, sayı veya özel karakterlerden oluşan bir dizidir. Tırnaklar arasına yazılan her karakter dizenin bir parçasıdır.

String dize = “Merhaba”;

JAVA’da String, dizeler üzerinde belirli işlemleri gerçekleştirebilen metodları içeren bir nesnedir. Bu sebeple string ifadeler üzerinde bazı fonksiyonları kullanarak işlemler gerçekleştirebiliriz.

String Fonksiyonları

length() Fonksiyonu : String ifadeler içerisindeki karakter sayısını bulmak için kullanılan fonksiyondur.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.length());
    }
}

toUpperCase() Fonksiyonu: String ifadeler içerisindeki tüm karakterleri büyük olarak yazmak için kullanılır.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.toUpperCase());
    }
}

toLowerCase() Fonksiyonu: String ifadeler içerisindeki tüm karakterleri küçük olarak yazmak için kullanılır.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.toLowerCase());
    }
}

indexOf Fonksiyonu: IndexOf fonksiyonu belirtilen ifadenin string içerisinde geçtiği ilk konumu bulmak için kullanılır. Çıktı olarak metnin string içerisinde başladığı index numarasını döndürür. Index numarasını sayarken boşluklarda dahil edilir.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.indexOf("a"));
    }
}

contains() Fonksiyonu: İçerisine yazdığımız karakterin ya da karakter grubunun string içerisinde var olup olmadığını sorgular. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.contains("a"));
    }
}

endsWith() Fonksiyonu: String ifadenin belirtilen karakter ya da karakter grupları ile bitip bitmediğini sorgular. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.endsWith("a"));
    }
}

equals() Fonskiyonu : İki string ifadeyi karşılaştırmak için kullanılır. Eğer string ifadeler eşitse True değilse False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       String dize1 = "Dünya";
       System.out.println(dize.equals(dize1));
    }
}

isEmpty() Fonksiyonu: Bir string ifadenin içerisinin boş olup olmadığını sorgulamak için kullanılır. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.isEmpty());
    }
}

replace() Fonksiyonu: Cümle içerisindeki bir karakteri ya da kelimeyi istenilen karakter veya kelime ile değiştirmek için kullanılan fonksiyondur.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.replace("e","a"));
    }
}

startsWith() Fonksiyonu: String ifadenin belirtilen karakter ya da karakter grupları ile başlayıp başlamadığını sorgular. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.startsWith("a"));
    }
}

trim() Fonksiyonu: String ifade içerisindeki sağdan ve soldan boşlukları silmek için kullanılır.

public class Main
{
    public static void main(String[] args) {
       String dize = " Merhaba ";
       System.out.println(dize.trim());
    }
}

concat() Fonksiyonu: İki string ifadeyi birleştirmek için kullanılan fonksiyondur.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       String dize1 = " Dünya";
       System.out.println(dize.concat(dize1));
    }
}

İki veya daha fazla string ifadeyi birleştirmek için concat() fonksiyonunun dışında “+” operatörü de kullanılabilir.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       String dize1 = "Dünya";
       System.out.println(dize + " " + dize1);
    }
}

İlkel veri tipleri ile ilkel olmayan veri tiplerinden bahsettiğimize göre şimdi bu iki grubun arasındaki farklara göz atalım.

İlkel Veri Tipleri İle İlkel Olmayan Veri Tipleri Arasındaki Farklar

İlkel veri tipleri ile ilkel olmayan veri tipleri arasındaki temel farklara aşağıdaki tablodan göz atabiliriz.

İlkel Veri Tipleriİlkel Olmayan Veri Tipleri
Java’da tanımlıdır.Kullanıcı tarafından tanımlanır.
Boş değer alamaz.Boş değer alabilir.
Boyutu veri türüne bağlıdır.Tümü aynı boyuta sahiptir.
Küçük harf ile başlar.Büyük harfle başlar.

Bu yazımızda JAVA’daki ilkel ve ilkel olmayan veri türlerinden bahsedip örnek kullanımlarını gördük. Aynı zamanda ilkel ve ilkel olmayan veri türleri arasındaki farkları da incelemiş olduk. Bir sonraki yazımızda JAVA’dan bahsetmeye devam edeceğiz.

JAVAG33L1R9L08D32S
Java ile Temel Programlama #2

Bu yazımızda sizlere JAVA’da temel ifadelerden bahsetmeye devam edeceğim. Genel olarak yazı içerisinde yorum satırları, kaçış ifadeleri, değişkenler ve veri tiplerinden bahsedeceğim.

Java’da yazdığımız her ifadenin derleyici tarafından kod olarak algılanması istemeyiz. Bunun nedeni yazdığımız kodun ya da yaptığımız işlemlerin, kodu okuyanlar tarafından daha iyi bir şekilde anlaşılması için yorumlar eklemek isteyebiliriz. Bu gibi durumlar için JAVA bizlere yorum satılarını kullanma imkanı sunar. Bir ya da daha fazla satırı yorum satırı olarak işaretlediğimizde derleyici tarafından o satırların kod olarak değerlendirilmemesini sağlarız.

Yorum satırları kod yazarken herhangi bir anda kullanılabilir. Bu kullanma sıklığı kodu yazan kişiye bağlıdır. Herhangi bir hazır fonksiyonun detaylarını incelediğinizde ya da orta-büyük projelere göz attığınızda yorum satılarının sıklıkla kullanıldığını görebilirsiniz.

JAVA’da Yorum Satırları

Programlama dillerine göre yorum satılarının kullanım şekillleri değişebilir. JAVA’da yorum satırının 3 farklı kullanım şekli vardır. Bunlardan ilki tek satırlık yorum satırı oluşturmak için kullanılan // işaretidir. Bu işareti kullandığımız satır farklı bir renkte yorum satırı olarak gözükür. Buraya Türkçe karakter içeren ifadelerde yazılabilir. Tek satırlık yorum satırı örneği aşağıdaki gibidir:

public class HelloWorld{

     public static void main(String []args){
      //Bu bir yorum satiridir.
     }
}

Eğer ki birden fazla satırı kullanarak kodumuzu açıklamak istersek /* … */ ifadelerini kullanabilir. /* ile başlayan ve */ ile biten satırlar arasına istediğimiz şekilde açıklamalar yazabilir. Bu yazılan açıklamalarda derleyici tarafından kod statüsüne alınmaz. Yukarıdaki tek satırlık yorum satırında olduğu gibi bu alanlara da Türkçe karakterli ifadeler yazılabilir. /* … */ ifadesinin kullanım örneği aşağıdaki gibidir:

public class HelloWorld{

     public static void main(String []args){
      /*
      Bu bir yorum satırıdır.
      
      Bu da bir yorum satırıdır.
      
      Bu da yorum satırıdır.
      
      */
      
     }
}

Son olarak /** … */ ifadesinden bahsedelim. Bu ifade genel olarak kod içi dökümantasyon amacıyla kullanılır. Uygulamalar yazıldıktan sonra raporlamaları yapılır. Kod geliştirmesi yapılırken kullanılan bu ifadeler arasına yazılan açıklamalar, özel etiketler içerebilirler. Kullanılan özel etiketleri tanıyan uygun bir araç vasıtasıyla bu açıklamalar dökümantasyonlara dönüştürülebilir. Bu dökümantasyonlar raporlar arasına eklenerek yazılım geliştiren ekibin rapor yükünü hafifletir.

/** … */ ifadesi içerisinde kullanılabilecek bazı özel etiketler aşağıdaki tabloda verilmiştir.

EtiketAçıklamaKullanış Şekli
@authorSınıfı oluşturan kişiyi ifade eder.@author yazar adı
{@code}Yazılan kodun derleyici tarafından kod olarak değerlendirilmeden kullanım örneğini vermek için kullanılır.{@code …}
@exceptionDökümantasyona, yazılan kodun istisnai durumlarını yazmak ve açıklamak için kullanılır.@exception istisnai durum
@paramKullanılan parametreleri ve bu parametlerin açıklamaları için kullanılır.@param parametre ismi – açıklaması
@returnKullanılan metodlardan döndürülen ifadelerin açıklaması için kullanılır.@return açıklama
@seeHerhangi başka bir ifadeyi referans göstermek için kullanılır. Örneğin başka bir metot.@see referans
@sinceDökümantasyonda, oluşturulan ifadeler için tarih bilgisi eklenilmesinde kullanılır.@since tarih
@versionOluşturulan dökümantasyonlara versiyon bilgisi eklemek için kullanılır.@version versiyon numarası
/**
* @author  Erhan Eskin
* @version 1.0
* @since   01-01-2022
*/

public class OrtalamaHesaplama{
    /** 
    *Bu sinif icerisinde tanimlayacagimiz uc degisken ile
    *degiskenlere atadigimiz degerleri toplayip
    * toplam degisken sayisina bolecegiz
    * bu islemi simdilik statik olarak gerceklestirecegiz
    * @param sayi1 bizim ilk degiskenimiz olacak
    * @param sayi2 bizim ikinci degiskenimiz
    * @param sayi3 bizim ucuncu degiskenimiz
    * @param toplam bizim dorduncu degiskenimiz
    * @param ortalama bizim besinci degiskenimiz
    * bu islemlerin ardindan sonuc olarak
    * @return ortalama ifadesini ekranda gorecegiz
    * 
    */ 
    
    public int ortalamaHesaplama (int sayi1, int sayi2, int sayi3) {
            int toplam,ortalama;
            toplam = sayi1 + sayi2 + sayi3;
            ortalama = toplam / 3;
            return ortalama;
   }


    public static void main(String[] args) {
        int hesap1;
        OrtalamaHesaplama nesne = new OrtalamaHesaplama();
        hesap1 = nesne.ortalamaHesaplama(20,30,40);
        System.out.println("ortalama :" + hesap1);
    }
}

Kodlama yaparken kullanabileceğimiz yorum satırlarımızdan bahsettiğimize göre şimdi kaçış operatörlerinden bahsedelim.

JAVA’da Kaçış Operatörleri

JAVA’da kullanılabilen kaçış operatörlerinden bazılarını aşağıdaki tablodan inceleyebilirsiniz.

Kaçış OperatörüAçıklaması
\tBir tab boşluğu ekler.
\nBir satır aşağı atlar.
\rSatır başı ekler.
\fSayfa sonunu belirtir.
\’Tek tırnak ekler.
\’’Çift tırnak ekler
\\Ters eğik çizgi ekler.

JAVA’da kaçış operatörlerini kullanarak yazdığımız kodların okunabilirliğini artırabiliriz. Kaçış operatörlerinin kullanımlarına ait örnek aşağıdaki gibidir:

INPUT:

public class Main
{
    public static void main(String[] args) {
        System.out.println("Bu bir\ndeneme boşluğudur");
    }
}

OUTPUT:

Bu bir
deneme boşluğudur
INPUT:

public class Main
{
    public static void main(String[] args) {
        System.out.println("Bu bir\tdeneme boşluğudur");
    }
}

OUTPUT:

Bu bir	deneme boşluğudur

Bu yazımızın son bölümünde değişkenler ve veri tiplerinden bahsederek yazımızı sonlandıralım.

JAVA’da Değişkenler Ve Veri Tipleri

Değişken (variable), girdiğimiz ya da atadığımız bazı değerlerin geçiçi olarak hafızada saklanması için oluşturulan alanlara denir. Bir değişkene herhangi bir değer atamak için “ = ” ifadesi kullanılır. Örnek olarak:

int deger = 4

Değişkenler sayesinde kullanacağımız ifadeleri hafıza saklar ve gerektiği durumlarda kullanırız. Bir değişken tanımlanırken belirtilen veri tipindeki değerleri saklayabilir. Örneğin int olarak tanımladığımız bir değişkene string(dize) bir değer ataması gerçekleştirirsek program bize çıktı olarak hata verir. Böyle durumlarda yazdığımız programımız basit bir sebepten dolayı kesintiye uğramış olur.

Eğer tanımlamış ve değer atamış olduğumuz bir değişkene tekrar değer ataması yapılırsa son atanan değer o değişkenin değeri olur.

JAVA’da değişkenlerin tanımlabileceği farklı veri tipleri vardır. Bu veri tipleri JAVA’da varsayılan olarak gelen ilkel veri tipleri olabilirken kullanıcının kendi tanımlayabileceği veri tipleri de olabilir. İlkel veri tiplerinin her zaman bir değeri vardır. İlkel olmayan veri tipleri boş olarak tanımlanabilir.

Bunların dışında ilkel veri tiplerinin boyutları veri tipine göre değişikleri gösterirken ilkel olmayan veri tiplerinin boyutları aynıdır.

JAVA’da değişken aşağıdaki gibi tanımlanabilir:

veri tipi değişken adı = deger

Aşağıdaki tabloda JAVA’da var olan 8 ilkel veri tipini inceleyebilirsiniz.

Veri TipiBoyutAçıklama
byte1 bayt-128’den 127 kadar olan tam sayıları saklar.
short2 bayt-32,768’den 32,767 kadar olan tam sayıları saklar.
int4 bayt-2,147,483,648’den 2,147,483,647 kadar olan tam sayıları saklar.
long8 bayt-9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 aralığında olan tam sayıları saklar.
float4 baytOndalık sayıları saklamak için kullanılır. 1.4×10^-45 ile 3.4×10^38 aralığında bir değer tanımlanabilir.
double8 baytOndalık sayıları saklamak için kullanılır. 4.9×10^-324 ile 1.8×10^308 aralığında bir değer tanımlanabilir.
boolean1 bitTrue ya da False adında mantıksal bir değer saklamak için kullanılır.
char2 baytHerhangi bir karakterin ASCII tablosundaki değerini saklar.

Yukarıdaki tabloyu incelediğimizde JAVA’da var olan ilkel veri tiplerini özetle incelemiş olduk. Bir sonraki yazımızda JAVA’da var olan bu ilkel veri tiplerinde örneklerden ve ilkel olmayan veri tiplerinden bahsedeceğiz. Bir sonraki yazıya buradan erişebilirsiniz.

JAVAECWJQP43S6OG9J
Java ile Temel Programlama #1

Bu yazımızda sizlere pek çok alanda kullanılan ve popüler bir programlama dili olan Java’dan bahsedeceğim. Genel olarak yazı içerisinde Java’nın ne olduğundan, nerelerde kullanılabildiğinden, yazım ve isimlendirme kurallarından bahsedeceğim. Son olarak da Java ile ilk kodumuzu yazarak yazımızı sonlandıracağım. O halde Java’nın ne olduğundan ve nerelerde kullanabileceğinden bahsetmeye başlayalım.

Java Nedir ve Nerelerde Kullanılabilir?

James Gosling

Java 1995 yılından çıkış yapan ve Sun Microsystems mühendislerinden James Gosling tarafından geliştirilen açık kaynak kodlu, nesne yönelimli ve yüksek seviyeli bir programlama dilidir. Java’yı Windows, MAC OS ve UNIX gibi işletim sistemlerinde kullanmak mümkündür. Syntax, üzerinde çalıştığımız programlama dilinin kendine has program yapısını ve bu yapının kurulmasında kullanılan kuralları ifade eder. Java’nın söz dizimi yapısı C/C++’a benzerdir. Bunun sebebi Gosling’in, programcılar için Java’nın kolay öğrenilebilen bir dil olmasını sağlamak istemesiydi.

Gosling, Java projesini ilk olarak 1991 yılında İnteraktif televizyonlar için geliştirmeye başlamıştı. Java’ya ilk olarak OAK ismini vermişti. Bu isim Gosling’in ofisinin yanında bulunun bir meşe ağacından gelmekteydi. Daha sonralarında ise projenin ismi Green olsa da son olarak Java ismini aldı.

Java’nın şu anda kullanılan en güncel sürümü 22 Mart 2022 tarihinde yayınlanan Java SE 18’dir.

Java kodlarını kullanarak program yazabilmek için IDE’lere ihtiyaç duyarız. Bir IDE (Integrated Development Environment, Tümleşik Geliştirme Ortamı), yazılım geliştirme için bilgisayar programcılarına kapsamlı olanaklar sağlayan bir yazılım uygulamasıdır. Java için Eclipse ve IntelliJ IDEA gibi ücretsiz IDE’ler kullanabiliriz. Bu IDE’leri indirmek ve bilgisayarınıza kurmak için resmi sayfalarını ziyaret edebilirsiniz.

Java Kullanım Alanları

Java programlama dilini kullanarak mobil, web ve masaüstü uygulamalar geliştirmek mümkündür. Günümüzde telefon, tablet ve bilgisayarlardan oynayabildiğimiz oyunlarda Java ile yazılabilir. Örnek olarak, popüler oyunlardan biri olan Minecraft, Java ile yazılmıştır. Bunlar dışında bilimsel uygulamaların yazımında, büyük veri teknolojilerinde, gömülü sistemlerde ya da finans uygulamalarında Java kullanmak mümkündür. Tabii ki bu alanlar için farklı programlama dilleri de mevcut fakat Java da bu alanlarda kullanılabilen programlama dillerinden biridir.

Java’da Yazım ve İsimlendirme Kuralları

Yazım Kuralları

Java’da var olan yazım kuralları aşağıdaki gibidir:

  • Değişken isimleri rakamlar ile başlayamaz.
  • Türkçe karakter metin ifadeleri dışında kullanılamaz.
  • Var olan fonksiyon veya özel isimler değişken ismi olarak tanımlanamaz.
  • Değişken isimleri birden fazla kelimeden oluşuyorsa arada boşluk kullanılamaz. Bu durumda araya ‘_’ eklenebilir ya da kelimeler birleştirilebilir.
  • Java küçük-büyük harfe duyarlı bir dildir. Örneğin ‘degisken’ isimli değişken ile ‘Degisken’ isimli bir değişken aynı değildir.
  • Bir değişken tanımlanırken önce değişkenin veri tipi ardından değişken ismi yazılmadır.
  • Komutların sonuna ‘ ; ’ ifadesi eklenir.
  • Değişken isimleri rakam ile başlamadığı taktirde kelime içerisinde rakam kullanılabilir.
  • Sınıf ismi yazılırken uyulması gereken kurallar, değişken tanımlanırken kullanılması gereken kurallar ile aynıdır.

İsimlendirme Kuralları

Java’da değişkenler, metotlar, sınıflar ve sabit değerler için isimlendirme kuralları vardır. Bu kurallara uyulmadığında program hata vermez ancak bu kurallar sayesinde okunabilirlik artar. Bu isimlendirme kurallarında kullanılan isimlendirme türlerini inceleyelim.

Upper Camel Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimedeki her bir kelimenin ilk harfinin büyük olması kuralıdır. Örneğin;

BirlesikKelime

Lower Camel Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimedeki ilk kelime hariç diğer kelimelerinin ilk harflerinin büyük olması kuralıdır. Örneğin;

birlesikKelime

Snake Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimelerin her birinin ‘_’ ile birbirine bağlanması kuralıdır. Kendi içerisinde Lower Snake Case ve Upper Snake Case olarak ikiye ayrılır.

Lower Snake Case Örneği; birlesik_kelime

Upper Snake Case Örneği; Birlesik_Kelime

Screaming Snake Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimelerin her birinin ‘_’ ile birbirine bağlandığı ve her bir kelimenin her harfinin büyük yazıldığı kuralıdır. Örneğin;

BIRLESIK_KELIME

Aşağıdaki tabloyu inceleyerek değişkenler, metotlar, sınıflar ve sabit değerler için isimlendirme kurallarını görebilirsiniz.

TürKuralÖrnek
SınıfUpper Camel Casepublic class ClassName{}
DeğişkenLower Camel CasevariableName
MetotLower Camel Casepublic int numberOfClasses{}
Sabit DeğerScreaming Snake Casefloat VALUE_OF _PI

Java’da isimlendirme kurallarının da neler olduğunu öğrendiğimize göre artık ilk çalışan programımızı yazabiliriz. İlk çalışan programımız, programlama dili öğrenirken adeta klasikleşen ekrana ‘Merhaba Dünya’ yazdırmak olsun.

Java’da Ekrana Veri Gösterme

Java’da ekrana çıktı bastırmak için ‘system.out.println()’ komutu kullanılabilir. Bu komutun içerisine yazacağımız herhangi bir değeri program çalıştırıldığında çıktı ekranında görürüz.

Burada bir diğer önemli nokta ise bu komutlarımızı Java’da nereye yazmamız gerektiğidir. Programı çalıştırdığımız anda bu komutlar okunmalı ve bize çıktı olarak istediğimiz değerler yansımalıdır. Bunun için aşağıdaki görsele göz atalım.

public class ClassName {
    public static void main(String[] args) {
        System.out.println("Merhaba Dünya");
   }
}

Kod bloğunda da görüldüğü gibi kodlar Java’da sınıf içerisine yazılır. Main metodu ise program çalıştığı anda çalıştırılan bir metottur. Main metodunun içerisine gövde (body) adı verilir. Kodumuzu bu main metodunun gövdesinin içerisine yazarak program çalıştırıldığı anda system.out.println() komutunu çalıştır demiş olduk. Buraya yazdığımız kod derleyici tarafından yorumlandıktan sonra bize çıktı olarak gösterilir.

System.out.println() komutu ile ekrana pek çok veriyi çıktı olarak gösterebilir, değişken sonuçlarını yansıtabilir veya matematiksel sonuçları yazdırabiliriz.

public class ClassName {
    public static void main(String[] args) {
      int deger = 8;  
      System.out.println("Sayinin degeri : " + deger);
   }
}
public class ClassName {
    public static void main(String[] args) {
      int sayi1 = 8;
      double sayi2 = 1.2;  
      System.out.println("Toplam Deger : " + (sayi1 + sayi2));
   }
}

Bu yazımızda sizlere Java’da temel bilgilerden bahsettim. Bir sonraki yazımızda Java’da yorum satırlarından, kaçış karakterlerinden, değişken ve veri tiplerinden bahsedeceğiz. Bir sonraki yazıya buradan erişebilirsiniz.

JAVASWO142JCV14919