Java Switch Case

Bir programda çok sayıda koşul kontrolü ve bunların sonucuna göre gerçekleştirilmesi gereken işlemler varsa, if-else yapıları ile akışın izlenmesi zorlaşabilir. Böyle durumlar genellikle switch deyiminin kullanılmasının gerekli olacağı durumlardır. switch deyimi, tek bir ifadenin değerine göre sınırsız sayıda çalıştırma yolu belirlemeyi sağlayan bir komuttur.

  • switch sözcüğünden hemen sonra gelen ifade parantez içinde yer almalı.
  • case anahtar sözcüklerini izleyen ifadeler değişken içermemelidir.

switch deyiminin çalışma prensibi basittir. switch ifadesi hangi case’i izleyen sabitle çakışıyorsa, programın kontrolü o case’i izleyen kısma geçer. Bu case’den sonraki deyimler de kontrol edilmeden çalıştırılır.

case sabitlerinden hiçbiri ifade ile uyuşmuyorsa, programın akışı default‘u izleyen kısıma geçer. (Bu kısım mevcutsa) default‘un en sonda olması şart değildir. Fakat en sona koymak iyi bir programlama stilidir.

İki case sabiti aynı değeri alamaz.

Switch/case yapısında, programın kontrolünün ifadenin değerine göre case seçeneklerinden sadece birini çalıştırıp bundan sonra switch/case yapısını terketmesini isiyorsak bu durumda her case seçeneğinden sonra break komutu yerleştirmeliyiz.

~~~UYGULAMA~~~

Girilen 2 sayıyı toplama, çıkarma, çarpma, bölme işlemleri… sayi1 ve sayi 2 ve operatör(+, -, *, / ) değerleri kullanıcı tarafından girilecektir… Burada dikkat edilmesi gereken String türünden bir op değişkeni tanımladık ve kodumuzda caseden sonra “+”, “-“, “*”, “/” şeklinde yazdık, değişkenimiz int, float, double tipinde olursa çift tırnak kullanılmaz sade şekilde yazılır, değişkenimiz char tipinde olursa tek tırnak içinde yazılır…

~~~KOD~~~

import java.util.Scanner;

public class temelIslemler {

       public static void main(String[] args) {
              int sayi1, sayi2;
              String op;
              Scanner sc = new Scanner(System.in);

              System.out.println(“Sayilari giriniz: “);
              sayi1 = sc.nextInt();
              sayi2 = sc.nextInt();
              System.out.println(“Hangi işlemi yapmak istiyorsunuz: “);
              op = sc.next();

              switch(op) {
              case “+”:
                   System.out.println(“Sonuc: “ + (sayi1 + sayi2));
                   break;
              case “-“:
                   System.out.println(“Sonuc: “ + (sayi1 – sayi2));
                   break;
              case “*”:
                   System.out.println(“Sonuc: “ + (sayi1 * sayi2));
                   break;
              case “/”:
                   System.out.println(“Sonuc: “ + ((double)(sayi1) / sayi2));
                   break;
              default:
                   System.out.println(“Yanlış operatör”);

              }

      }

}

Java’da if-else Yapısı

if deyimi belli bir şart sağlanması durumunda program akışını kendi faliyet alanı içerisine yönlendirir. Kendi faliyet alanının en son satırına kadar kodları çalıştırır ve daha sonra da program akışı if deyiminin faliyet alanının bittiği yerden devam eder.

Daha teknik söylemek gerekirse, şartın sağlanması demek, aslında if deyiminin kontrol parantezleri içerisindeki ifadenin true olması demektir. Aynı şekilde bu şartın sağlanmaması ise ifadenin false değerini üretmesi anlamına gelir.

Java dilinde şartlı dallanma if ve else anahtar sözcükleriyle gerçekleştirilir. if deyiminin basit gösterimi şöyledir:

————–

if (şart1){
   komut1
}
else if(şart2){
   komut2
}
else if(şart3){
   komut3
}
    .   .    .
    .   .    .
    .   .    .
else if(şartn){
   komutn
{
else{
   komutelse
}  
   komutdevam

————–

Burada hangi şartın değeri doğrulanıyorsa o if yapısının içerisindeki kodlar işleme alınacaktır ve komutdevam kodundan işlem devam ettirelecektir. Eğer hiç bir şart doğrulanmassa else komutunun içerisindeki kodlar işleme alınacak ve komutdevam kodu ile işleme devam edilecektir…

 

~~~UYGULAMA~~~

Bölme işleminde 0’a bölüm hatası… Bu kodda sayi1 ve sayi2 değerleri kullanıcıdan alınacaktır. sayi1 bölünen, sayi2 ise bölendir, Eğer sayi2 0 girilirse program “0’a bölüm hatası..” mesajını ekrana yazdıracaktır…

~~~KOD~~~

import java.util.Scanner;

public class ifElse {

public static void main(String[] args) {

          int sayi1, sayi2;
          double bolum;

          Scanner sc = new Scanner(System.in);

          System.out.println(“Sayi1’i giriniz: “);
          sayi1 = sc.nextInt();

          System.out.println(“Sayi2’yi giriniz: “);
          sayi2 = sc.nextInt();

          if(sayi2 != 0) {
                bolum = (double)sayi1 / sayi2;
                System.out.println(“Sonuc: “ + bolum);
          }
          else {
                System.out.println(“0’a bölüm hatası..”);
          }
     }
}

Kullanıcıdan Veri Alma (Scanner Sınıfı)

Scanner sınıfını kullanarak veri alabilmemiz için ilk başta Scanner sınıfını programımıza dahil etmemiz gerekiyor. Bu dahil etme işlemini ;

import java.util.Scanner;

kodu ile yapıyoruz. Dahil etme işleminden ardından Scanner sınıfının metodlarını kullanabilmemiz için bir nesne oluşturuyoruz.

Scanner sc = new Scanner(System.in);

sc ——> Değişken ismi, sc yerine istediğiniz değişken ismini yazabilirsiniz. örneğin;

Scanner input = new Scanner(System.in);

Kullanıcıdan girilen değeri alabilmemiz içinse; (sc değişkeni için ele alalım)

int türünden tanımlanmış bir sayi değişkeni olsun,

sayi = sc.nextInt(); ile girilen değeri sayi değişkenine atarız. sayi değişkenimiz int türünde olduğu için nextInt kullandık. Değişkenin türüne göre nextInt, nextFloat, nextDouble vs yazılır. Değişkenimiz String türünde ise nextLine yazılır.

~~~UYGULAMA~~~

Bir boyacı, bir kutu boyayla 45 m2’lik bir alanı boyayabilmektedir. Eni, boyu ve yüksekliği verilen dikdörtgenler prizması şeklinde bir odanın dört duvarını ve tavanını boyayabilmek için kaç kutu boya gerektiğini hesaplayan bir java programı yazınız. Duvarda pencere olmadığını varsayınız. Odanın zemini dışındaki bütün alanın boyanacağına ve satın alınması gereken kutu sayısının tamsayı olması gerektiğine dikkat ediniz.

~~~KOD~~~

import java.util.Scanner;
public class ScannerSinifi {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
float en, boy, yukseklik, alan;

System.out.print(“Odanın Enini Giriniz (Metre Cinsinden) : “);
en = sc.nextFloat();

System.out.print(“Odanın Boyunu Giriniz (Metre Cinsinden) : “);
boy = sc.nextFloat();

System.out.print(“Odanın Yüksekliğini Giriniz (Metre Cinsinden): “);
yukseklik = sc.nextFloat();

alan = (en*yukseklik*2)+(boy*yukseklik*2)+(en*boy);

System.out.println(“Boyanması Gereken “ + alan + ” m² Alan Var”);
System.out.println(“Bunun İçin “ + alan/45 + ” Kutu Boya Gerekiyor”);
System.out.println(“Gİdip ” +(int)( Math.ceil(alan/45)) + ” Kutu Boya Satın Al”);

      }

}

Java Math Sınıfı

~~~~~~Math Sınıfı Elemanları~~~~~~

  • Math.E   ———-> Matematikteki E sayısını verir.
  • Math.PI   ———-> Matematikteki pi sayısını verir.
  • Math.abs   ———-> Girilen sayının mutlak değerini alır.
  • Math.acos   ———-> Argüman olarak verilen sayının  ters hiperbolik
    kosinüs değerini verir.
  • Math.asin   ———-> Argüman olarak verilen bir sayının ters hiperbolik
    sinüs değerini verir.
  • Math.atan   ———-> Argüman olarak verilen bir sayının ters hiperbolik
    tanjant değerini verir
  • Math.atan2   ———-> Argüman olarak x ve y değerleri verilen bir noktanın x eksenine göre açısını radyan olarak verir.
  • Math.cbrt   ———-> Küp kök almamızı sağlar.
  • Math.ceil   ———-> ondalıklı bir sayının kendisinden büyük en küçük tamsayıya  yuvarlanmasını sağlar.
  • Math.copySign   ———-> Bu fonksiyon, y nin işaretini x in başına koyarak, x sayısını çıktı olarak verir.
  • Math.cos   ———-> Argüman olarak verilen bir sayının kosinüsünü radyan olarak verir.
  • Math.cosh   ———-> Girilen değerin hiperbolik kosinüs değerini verir.
  • Math.exp   ———-> Girilen değere 2 dersek Math.E *Math.E ile eşdeğerdir. Yani girilen değere n dersek en  nin sonuçunu verir.
  • Math.expm1   ———-> Girilen değere n dersek en -1 i temsil eder. Math.exp den tek farkı 1 çıkarmamızdır.
  • Math.floor   –———> Floor fonksiyonu, ceil fonksiyonunun tam
    tersi işlevine sahip bir fonksiyondur. Yani, verilen bir ondalık sayıdan küçük olan en büyük tamsayıyı çıktı olarak verir.
  • Math.getExponent   ———-> Girilen değerin 2 nin kaçınçı katı olduğunu verir. Örneğin 8 değerini girdiğimizde 3 değerini verir 2 nin 3. katı 8 dir. 16 değerini girdiğimizde 4 değerini verir çünkü 2 nin 4. katı 16 dır. ancak 8 ile 16 arasında kalan sayılardada 3 değerini vermektedir.
  • Math.hypot   ———-> Hipotenüs değerini bulur. Bir dik üçgeni ele aldığımızda karşı ve komşu değerlerini girdiğimizde bize hipotenüs değerini verir.
  • Math.IEEEremainder   ———-> Mod alma işleminin değişik bir versiyonudur. Bu fonksiyon iki sayının birbirine bölümünden kalanın 0 olması için bölümden çıkarılacak mutlak değerce en küçük sayıyı verir.
  • Math.log   ———-> e tabanına göre logaritma alınır.
  • Math.log10   ———-> 10 tabanına göre logaritma alınır.
  • Math.log1p   ———-> (Girilen değer+1) in e tabanına göre logaritması alınır.
  • Math.max   ———-> Girilen iki değerden büyük olanını bulur.
  • Math.min   ———-> Girilen iki değerden küçük olanını bulur.
  • Math.pow   ———-Üssü anlamına gelir. Örneğin Math.pow(2 , 3) ün anlamı 2³ dür.
  • Math.random  ————> Random sınıfı, rastgele sayılar üretmek için kullanılır. 0.0 ile 1.0 arasında sayılar üretir, bu alanı geliştirmek için bir sayı ile çarpılabilir. Örneğin 1 ile 100 arasında rastgele bir sayı üretmesini istiyorsak (int)(Math.random()*100) yöntemini kullanabiliriz.
  • Math.rint   ———-> Virgüllü sayıda sayıyı hangi tamsayıya yakınsa o sayıya yuvarlama yapar Örneğin 1,3 sayısını 1,0 a yuvarlar 1,7 sayısını 2,0 a yuvarlar. Eğer sayılar buçuklu ve tam kısım çift ise aşağı yuvarlar Örneğin 2,5 sayısını 2,0 a yuvarlar tam kısım tek ise yukarı yuvarlar Örneğin 1,5 sayısını 2,0 a yuvarlar.
  • Math.round   ———-> Virgüllü sayıda sayıyı hangi tamsayıya yakınsa o sayıya yuvarlama yapar Örneğin 1,3 sayısını 1 e yuvarlar 1,7 sayısını 2 ye yuvarlar. Math.rint ten farkı buçuklu sayıları her zaman yukarı yuvarlar ve 2,0  –  1,0 şeklinde değilde 2  –  1 şeklinde verir.
  • Math.scalb   –———> Girilen ilk değere x ikinci değere n diyelim. x*2n değerini hesaplayarak döner burada x double veya float olabilir n int türü değişkendir.
  • Math.signum  ————-> Girilen değerin işaretine göre  “0,0” ,  “1,0”  ,  “-1,0”  değerleri döndürür. Eğer girilen sayı 0 ise 0,0 değeri döndürür, 0 dan büyük pozitif sayılar ise 1,0 değeri döndürür, 0 dan küçük negatif sayılar ise -1,0 değeri döndürür.
  •  Math.sin   ———-> Argüman olarak verilen bir sayının sinüsünü radyan olarak verir.
  • Math.sinh   ———-> Girilen değerin hiperbolik sinüs değerini verir.
  • Math.sqrt   ———-> Girilen değerin karekökünü alır.
  • Math.tan   ———-> Argüman olarak verilen bir sayının tanjantını radyan olarak verir.
  • Math.tanh   ———-> Girilen değerin hiperbolik tanjant değerini verir.
  • Math.toDegrees   ———-> Radyan cinsinden girilmiş sayısal değeri dereceye çevirir.
  • Math.toRadians   ———-> Derece cinsinden girilmiş bir açıyı radyan birimine çevirmek için kullanılır.

~~~~~~Kodlar Ve Çıktıları~~~~~~

~~KODLAR~~

public class MathSinif {

public static void main(String[] args) {

System.out.println(Math.E);
System.out.println(Math.PI);
System.out.println(Math.abs(-5));  
System.out.println(Math.acos(0.8));
System.out.println(Math.asin(0.6));
System.out.println(Math.atan(0.75));
System.out.println(Math.atan2(0.6,0.5));
System.out.println(Math.cbrt(8));
System.out.println(Math.ceil(2.6));
System.out.println(Math.copySign(5, -2));
System.out.println(Math.cos(1));
System.out.println(Math.cosh(0.5));
System.out.println(Math.exp(3));
System.out.println(Math.expm1(2));
System.out.println(Math.floor(2.8));
System.out.println(Math.getExponent(128));
System.out.println(Math.hypot(3,4));
System.out.println(Math.IEEEremainder(11, 4));
System.out.println(Math.log(10));
System.out.println(Math.log10(100));
System.out.println(Math.log1p(4));
System.out.println(Math.max(10,13));
System.out.println(Math.min(43, 78));
System.out.println(Math.pow(2, 5));
System.out.println(Math.random());
System.out.println((int)(Math.random()*100));
System.out.println(Math.rint(1.2));
System.out.println(Math.rint(1.8));
System.out.println(Math.rint(2.5));
System.out.println(Math.rint(3.5));
System.out.println(Math.round(1.2));
System.out.println(Math.round(1.8));
System.out.println(Math.round(2.5));
System.out.println(Math.round(3.5));
System.out.println(Math.scalb(0.5, 3));
System.out.println(Math.signum(0));
System.out.println(Math.signum(78));
System.out.println(Math.signum(-43));
System.out.println(Math.sin(0.5));
System.out.println(Math.sinh(0.5));
System.out.println(Math.sqrt(9));
System.out.println(Math.tan(0.5));
System.out.println(Math.tanh(0.5));
System.out.println(Math.toDegrees(6));
System.out.println(Math.toRadians(180));

      }

}

~~EKRAN ÇIKTISI~~

2.718281828459045
3.141592653589793
5
0.6435011087932843
0.6435011087932844
0.6435011087932844
0.8760580505981934
2.0
3.0
-5.0
0.5403023058681398
1.1276259652063807
20.085536923187668
6.38905609893065
2.0
7
5.0
-1.0
2.302585092994046
2.0
1.6094379124341003
13
43
32.0
0.15209260868380914
31
1.0
2.0
2.0
4.0
1
2
3
4
4.0
0.0
1.0
-1.0
0.479425538604203
0.5210953054937474
3.0
0.5463024898437905
0.46211715726000974
343.77467707849394
3.141592653589793

Javaya Giriş “Merhaba Dünya”

public class Merhaba {

public static void main(String[] args) {

System.out.println(“Merhaba dünya”);

       }

}

Programın Çıktısı:

Merhaba dünya

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

System.out.println();   —->  Ekrana yazı yazdırmamızı sağlar.

Eğer println ile mesaj kodumuzu yazarsak bir sonraki mesaj alt satırdan yazılmaya devam eder yani satır başı yapar. Örneğin;

public class Merhaba {

public static void main(String[] args) {

System.out.println(“Merhaba dünya”);

System.out.println(“Java çok eğlenceli”);

       }

}

Programın Çıktısı:

Merhaba dünya

Java çok eğlenceli

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Eğer print ile mesaj kodumuzu yazarsak bir sonraki mesaj önceki mesajın sonundan yazılmaya devam eder. Örneğin;

public class Merhaba {

public static void main(String[] args) {

System.out.print(“Merhaba dünya “);

System.out.print(“Java çok eğlenceli”);

       }

}

Programın Çıktısı:

Merhaba dünya Java çok eğlenceli

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Birde println ile print i aynı kodda yazalım;

public class Merhaba {

public static void main(String[] args) {

System.out.print(“Merhaba dünya “);

System.out.println(“Java çok eğlenceli”);

System.out.print(“Programlama “);

System.out.print(“Dilleri”);

       }

}

Programın Çıktısı:

Merhaba dünya Java çok eğlenceli

Programlama Dilleri

Java Veri Tipleri

Değişkenler ayrılmış hafıza alanında değer tutarlar. Bunun anlamı değişken oluşturulduğunda hafızada alan ayırtılmış olunur.

Değişkenlerin temel data tiplerinde, işletim sistemi hafıza ayırır ve ayrılmış hafızada ne tutacağına karar verir. Bu yüzden tam sayılar, ondalık sayılar ve karakterler bu değişkenlerde tutulabilir.

Öncelikle değişken ismi tanımlama kurallarına bir göz atalım;

  • Değişken İsimlendirme Kuralları

Değişkenleri isimlendirirken dikkat etmemiz gereken kurallar var.Bunlar şöyle;

  1. Java büyük-küçük harfe duyarlıdır.(case sensitive)Yani kalem değişkeni, KALEM değişkeninden veya Kalem değişkeninden farklıdır.

  2. Değişken isimleri bir harf, veya $ , veya _ ile başlamalıdır kesinlikle sayı ile BAŞLAMAMALIDIR.

  3. Değişken, isminin ilk harfinden(veya $,_) sonra rakam içerebilir.

  4. Değişken ismi ayrılmış kelimelerle(keyword) aynı olamaz.Mesela int , String adlı bir değişken tanımlayamayız.Bu kelimelerin listesi şu şekilde;

tip

Değiken isimlendirirken dikkat edeceklerimiz bunlardı.İyi görünümlü kod sayfaları oluşturmak için uymamız gereken bir kaç kural var. Java bu kurallara uymamız için bizi zorlamıyor.

  • Değişken isimleri küçük harfle yazılır. Örneğin String kalem;

  • Eğer değişken birden fazla kelime içeriyorsa ikinci kelimeye büyük harfle başlanır.Örneğin String kursunKalem;

  • İzin verdiği halde değişkenleri isimlendirken $ yada _ ile başlamayız.

  • Geçici int değişkenler için i,j,k,m,n.Geçici karekter değişkenleri içinse c,d,e kullanırız.

  • Adlandıracağımız kelimeler kısa ve anlamlı olmalıdır.

 

  • Boolean Değişken Türü
  • Boolean data tipi bilgiyi bir bit olarak temsil eder.
  • İki tane olası değeri vardır. : true ve false.
  • Default  değeri false ‘dur.
  • Örnek : boolean b = true;

 

  • Byte Değişken Türü
  • Byte data tipi 8-bit işaretli sayı tutar.
  • Minimum değeri -128’dir.
  • Maksimum değeri 127’dir.
  • Default değeri 0’dır.
  • Byte data tipi büyük dizilerde alandan tasarruf için kullanılır. İnt değişkenlere göre 4 kat daha az yer kaplar.
  • Örnek : byte sayi = 100; , byte sayi2 = -50;

 

  • İnt Değişken Türü
  • İnt data tipi 32-bit işaretli tam sayı tutar.
  • Minimum değeri -2^31 ‘ dir.
  • Maksimum değeri 2^31-1 ‘ dir.
  • Default değeri 0’ dır.
  • İnt genellikle tamsayı değerler için kullanılır.
  • Örnek : int a = 100000; , int b = -200000;

 

  • Long Değişken Türü
  • Long data tipi 64-bit işaretli sayıları tutar.
  • Minimum değeri -2^63 ‘dür.
  • Maksimum değeri 2^63-1 ‘dir.
  • Default değeri 0 ‘dir.
  • Bu tip int tipinden daha geniş aralıkta sayı tutmak için kullanılır.
  • Örnek : long a = 100000; , long b = -200000;

 

  • Float Değişken Türü
  • Float data tipi 32-bit (IEEE 754) ondalıklı sayıları tutar.
  • Float temel olarak geniş ondalık sayı dizilerini tutmada kullanılır.
  • Default değeri 0.0 ‘ tir.
  • Floar data tipi para gibi tam değerleri tutmak için kullanılmaz!
  • Örnek : float f = 234.5;

 

  • Double Değişken Türü
  • Double data tipi 64-bit (IEEE 754) ondalık sayıları tutar.
  • Bu tip genel olarak ondalık değerleri tutmada sıklıkla kullanılır.
  • Default değeri 0.0 ‘ dir.
  • Örnek : double d1 = 123.4;

 

  • Short Değişken Türü
  • Short data tipi 16-bit  işaretli sayı tutar.
  • Minimum değeri -32,768 (-2^15)tir.
  • Maksimum değeri 32,767 (2^15-1)dir.
  • Default değeri 0’dır.
  • Byte data tipinde olduğu gibi hafızadan tasarruf için kullanılır. İnt değişkenlerden 2 kat daha az yer kaplar.
  • Örnek : short s = 10000; , short r = -20000;

 

  • Char Değişken Türü

Karakter veri tipi 2 Byte bellek boyutuna ihityaç duymaktadır. Karakter veri tipi char, sadece bir adet harf,rakam,sembol veya alfanumerik değeri alabilir. Değer aralığı 0 ila 65.535 arasında tanımlanmış Unicode değerlerdir. Char değişkenine değer atamak için tek tırnak operatörü ‘ ‘ içerisine istenilen karakter yazılmaktadır. Ayrıca ‘u0000’ ila ‘uffff’ aralığında Unicode değeri verilerek de değer ataması yapılabilir.

KOD ; char degiskenAdi ;

char cinsiyet=’E’ ;

char cinsiyet=’K’ ;

 

  • String Değişken Tipi

String değişken tipi alfnumerik değişkenler tanımlamak için kullanılır. Yani string değişkenlere girilen değer bilgisayar tarafından yazı olarak algılanır ve üzerinde matematiksel işlem yapılamaz. Stringe değer atamak için çift tırnak operatörü ” ” kullanılır.

KOD ;  String degiskenAdi ;

String cinsiyet=”Erkek” ;

 

Java Operatörler

  • Aritmetik Operatörler

Java programlama dili birçok aritmetik işlemi destekleyen
çeşitli operatörlere sahiptir. Bu işlemler toplama operatörü (+), çıkartma operatörü (-), çarpma operatörü
(*), bölme operatörü (/) ve son olarak da artık bölme (%) operatörüdür.
Java’da aritmetik operatörler
Operatör Kullanılış Açıklama

ope1

 

  • Artırma ve azaltma operatörü

Operatör Kullanılış Şekli Açıklama
ope3
Örneğin (++a veya –a) şeklinde verilmesinde, önce matematiksel toplama/çıkartma işlemi gerçekleşir;
daha sonra değer üretilir. Ancak, (a++ veya a–) şeklinde verilmesi durumunda ise, önce değer üretilir; daha
sonra matematiksel toplama/çıkartma işlemi gerçekleşir.

  • İlişkisel operatörler

ope2

Kod Yazım Kuralları

Bu yazıda “Kod yazım kuralları neden önemli?” ve  “Kod yazım kuralları nelerdir, nelere dikkat etmek gerekir?” gibi sorulara cevap bulacaksınız.

Öncelikle, bir programcı programlama yaparken kodun okunabilir olmasına dikkat etmelidir. Okunabilir kod nedir diyecek olursanız; okunabilir kod, kodu yazanların ya da kodu yazanlar dışındaki program geliştiricilerin projeyi incelediğinde ne işe yaradığını anlayabildiği, fonksiyon ve değişken adlandırmaları, girintileri ve satır boşlukları ayarlanmış, anlaşılır yorum satırları olan koddur.

Okunabilir kod yazmak için belli bir alışkanlığa sahip olmanız gerekir. Kod yazım kurallarını derse başlamadan önce anlatmak istedim ki, başlangıçtan bu alışkanlığa sahip olursanız ileride siz rahat edersiniz.

Okunabilir, kod yazım kurallarına uygun kod yazmak belki projenin çalışmasını etkilemez; ancak neredeyse projenin çalışması kadar önemlidir. Biliyorsunuz ki proje bitse de, ileride projede değişiklikler olmayacağını garanti edemezsiniz. Dolayısıyla bir takım şeyler eklemek için, projenin kaynak kodlarına geriye dönüp bakmanız, kodları anlamanız gerekebilir. Buna ek olarak bu projede birden fazla kişi çalışıyor olabilir ve çalışan kişilerin bu kodları anlaması gerekebilir. Yazılan kodun karmaşıklığı övünülecek bir durum değildir. Aksine ne kadar hızlı kod yazıyor olursa olsun, başarısız bir programlamacıdır.

Kod yazım kurallarına uymak aynı zamanda, kod parçalarının kullanabilirliğini de arttırır. Kodu fonksiyonlar ya da metotlar halinde yazmak, aynı işi yapan kodları tekrar tekrar yazmanızı engeller ve veriminizi arttırır.

Kod yazım kurallarına gelecek olursak;

İsimlendirmeyi iyi yapın:

  • İsimlendirmede Türkçe karakter kullanılmamasına dikkat etmek gerekir.
  • İsimler değişkenlerin kullanım amacına uygun olması gerekir.
  • Yazması uzun olur diye düşünüp değişken isimleri kısaltılmamalıdır.
  • Döngü değişkenleri dışında tek ya da iki harfli değişken isimleri seçmek yanlış bir tercihtir. (i,j,k,l,m,…gibi değişken isimleri döngüde kullanılabilir.)
  • Sınıf adları; büyük harfle baslar ve birden çok kelime içeren sınıf adlandırması yapılacaksa her bir kelimenin baş harfi de büyük yazılmalıdır. (Bitkiler,BitkiCesitleri,… )
  • Fonksiyon(metot) adları; küçük harfle başlar ancak birden fazla kelime içerirse diğer kelimeler büyük harfle başlamalıdır.(hesapla,toplamaYap,…)
  • Özellikle büyük projelerde, değişken isimlerinin değişkenin veri tipini ifade eden bir harfle başlaması tercih edilir.(enum yapısı için eDegisken, integer için iDegisken, float için fDegisken,…)

Girintiler ve Boşlukları iyi ayarlayın:

  • Biçimli, güzel görünümlü kod yazmaya özen göstermek gerek. Açılan parantezin kapandığı yere dikkat etmek gerekir. Eclipse’de girinti, çıkıntıların ve boşlukların düzenli olmasını sağlayan “Format” özelliği vardır. Bu konu da sık başvuracağınız bir özellik.
  • Bir kod başka bir kod bloğunun içindeyse mutlaka bir tab’lık alan sağda olsun.
1
2
3
4
5
public class Main {
      public static void main(String args[]){
           System.out.println("Hello Java!");
       }
}

Kodlarınızı yazarken sınıflara ve metotlara ayırın:

  • Geliştirdiğiniz algoritmaları metotlar içinde yazarsanız, ileride aynı algoritmayı kullanmak istediğinizde sizin için kolaylık olur.
  • Metotları yazarken, her bir metot bir işi yerine getirsin. Yalınlıktan yana olun. Emin olun bu işinize yarayacaktır.
  • Kısa kısa metotlar yazmak hata yapma oranınızı azaltacağı gibi, hatalarınızı da daha kolay bulmanızı sağlayacaktır.

Açık ve anlaşılır yorumlar yazın:

  • Mutlaka yazdığınız her fonksiyona fonksiyonun ne iş yaptığını anlatan açıklayıcı yorumlar yazın.
  • Kod parçacıklarına yaptığınız yorumlar, sizin dışınızdaki program geliştiricisinin anlayabileceği ve sizinde ileride bakıp anlayacağınız şekilde olmalıdır.

Yazıyı bitirmeden önce şunu aklınızdan çıkarmayın, bahsettiğim kod yazım kuralları yazılı, mutlaka uyulması gereken kurallar değildir. Bu kurallara uygun yazmasanız da kodlarınız çalışır ancak bu sizi iyi programcı yapmaz. İyi bir programcı olmanın yolu anlaşılır, okunaklı ve kod yazım kurallarına uygun kod yazmaktan geçer.

Kod yazarken belirli bir yazış biçimi belirleyin ve ona sadık kalın. En önemlisi programlamayla kalın…

WordPress.com'da ücretsiz bir web sitesi ya da blog oluşturun.

Yukarı ↑