18 Ekim 2015 Pazar

JAVA'DA OPERATÖRLER

Her programlama dilinde olduğu gibi java da da çarpma,bölme,toplama,çıkarma işlemlerini yapmak için belirli aritmetik operatörler kullanılır.Kod dizini diğer dillerde olduğu gibidir.Örnek kodlamaya geçmeden önce kullanacağımız belli başlı aritmetik operatörleri inceleyelim.

OPERATÖR                                         SONUÇ 
       +                                                     Toplama
       -                                                      Çıkarma
       *                                                     Çarpma
       /                                                      Bölme
      %                                                     Mod
     ++                                                     Artırma
     +=                                                     Toplama Ataması
     -=                                                      Çıkarma Ataması
     *=                                                     Çarpma Ataması
     /=                                                      Bölme Ataması
    %=                                                     Mod Ataması
    --                                                        Eksiltme

**NOT** : Aritmetik operatörleri "boolean" tipleri üzerinde kullanamayız.Ancak int tipinin bir alt kümesi olan "char" tipi üzerinde kullanabiliriz.Kodları çalıştırmak istiyorsak bu kurala dikkat etmemiz gerekir.Ben kodlamada bu hatayı yaşamıştım :)..

Aritmetik operatör tiplerine baktıktan sonra şimdide bu tiplerin kodlamada nasıl kullanıldığına bakalım.Bu kodumuzda farklı olarak negatifine değiştirme kodu görelim.

--ARİTMETİK OPERATÖR KULLANIMI İLE İŞLEMLER--
Yukarıdaki kodda aritmetik operatörler ile işlem yaptırma kodları yazdık. Programın bizden ilk istediği şey işlem yapılacak sayıları tanımlamak int türünde a,b,c sayıları tanımladık.Float türünde x,y sayıları tanımladık.Burada dikkat edilmesi gerek şey float  değişkenine atanan sayıların yanında "f" harfi oluşudur. Bunun sebebi sayının float olduğunu belirtmektir.Neden belirtiriz ? Şimde sayının yanında "f" olmadığını düşünelim eski öğrendiğimiz bilgilerden hatırlarsak bu sayıya bir "double" da diyebiliriz sonuçta "double" değişkeni de virgüllü sayıları içine alır.İşte bu yüzden programımızda sayısal veri hatasına düşmemek için yanına "float" olarak belirttik. Daha sonra bu elde ettiğimiz bilgileri ekrana System.out.println kodu ile teker teker yazdırdık.En sonda dikkatimizi çeken yer int ve float türünde sayılar tanımlayıp ekranda bunların negatif değerlerini gördüğümüz. Bunuda ;
int negX= -X kodu ile yaptık bu kod tanımadığımız sayıları negatifine çevirir. Y sayısı içinde aynı durum geçerlidir.Şimdi aşağıda kodun çalıştıktan sonra ekran görüntüsüne bakalım.

--ÜSTTEKİ KODUN EKRAN ÇIKTISI--
ARİTMETİK OPERATÖRLERDE ARTIRMA VE AZALTMA OPERATÖRÜ

Bu operatörler üstteki tabloda gösterdiğimiz "++" ve "--" operatörüdür. Sayının değerini 1 artırıp, 1 azaltmaya yarar.Bu işlemler işlemci tarafından desteklendiği için çok daha hızlı çalışır.Bu operatörlerin sağda yada solda olmaları tek başına kullanıldıklarında farketmez.Ancak bir ifade parçası içinde oldukları zaman değer değiştirebilirler.Şimdi bu işlemi örnek bir kod üzerinde
inceleyelim:

--ARTIRMA/AZALTMA--
Görüldüğü gibi sayıların yanlarında olan artıma azaltma operatörleri sayıları artırarak ve azaltarak tekrar ekrana bastı.

Şimdide kodlamalarda çok kullanılan anlaşılması karmaşık olan farklı bir atama tipini ele alalım.

--ARTIRMA/AZALTMA OPERATÖRÜNE YENİ DEĞERE GÖNDERME--
Bu kodu çok dikkatli incelememiz gerekir.İlk olarak sayi1 ve sayi2 adında 2 sayı tanımladık. Daha sonra bu sayıları işleme soktuk.Kodları daha yakından incelersek:

int sayi3 = sayi++; ==>>Bu kodda sayi3 olarak yeni değişken tanımlamış ve bu değişkene değer ataması yapılırken ilk olarak üstteki sayi1 in değeri alınmış daha sonra bir artırılmıştır.

int sayi4 = ++sayi2; ==>>Bu kodda sayi4 olarak yeni değişken tanımlanmış ve bu değişkene değer ataması yaoılırken ilk olarak sayi2 nin değeri bir artırılmış sonra, değişkene atama yapılmıştır. 

**NOT** :Üstte kırmızı olarak yazılan 2 ifade arasındaki fark çok önemlidir. Önceden bildiğimiz üzere kodlar yukarıdan aşağı ve soldan sağa çalışır. Yani bu kodda bilgisayar ilk olarak sayi1 ve sayi2 değerlerini okuyacak sonra alta inecek sayi3 diye bir değişken görüp bunun içine ilk olarak sayi1 in değerini atayacaktır ve ekrana sayi3 değeri olarak 7 yazdıracaktır.(Artırma işlemini içine değer ataması yaptıktan sonra gerçekleştirecektir.)Daha sonra bir alt satıra inecek burda sayi4 adında bir değişken görecek ve bunun değerini doldururken ilk gördüğü kod "++" olaraktır yani ilk olarak sayi2 değerini bir artırıp sonra değişkenin değerini atayacaktır. Yani sayi4 değeri 8 olacaktır.

ARİTMETİK ATAMA OPERATÖRÜ

Javada 5 tane aritmetik atama operatörü vardır. Bunlar:  +=(toplayarak ata)  -=(çıkartarak ata)
*=(çarparak ata)  %=(bölerek ata) operetörleridir. Bunlar işlemlerin tek seferde yapılmasını sağlar.
Örnek bir kodlamada görecek olursak :

--ARİTMETİK OPERATÖRLER--
Yukarıdaki koda bakacak olursak: ilk olarak bilgisayar int değişkeninde 25 ve 15 sayılarını okur. Daha sonra alt satıra iner. Alt satırda aritmetik atama operatörü kullanılmıştır. a+=b;
demek a sayısını b ile topla çıkan bu toplamı tekrar a sayısına ata demektir. Normalde bu ifade 2 satır kodla da yapılabilir program yine çalışır. Fakat bizler kolaylık olsun diye bu ifadeleri kullanırız.Bölme,çarpma,çıkarma işlemlerindede mantık böyledir sadece atama operatörü değişir.

İLİŞKİSEL ATAMA OPERATÖRLERİ :

Programlarda genel olarak 6 tane ilişkisel atama operatörü kulanacağız. Bunlar aşağıdaki tabloda gösterildiği gibidir.

==        eşittir
<          küçüktür
>          büyüktür
<=        küçük eşittir
>=        büyük eşittir
!=         eşit değildir
| |          veya
&&      ve

İlişkisel operatörler genel olarak programlarda "ıf-else if" koşul yapıları içinde kullanılır. Aşağıda bu koşul yapıları içinde kullanılan ilişkisel operatörleri kod üzerinde inceleyelim. Bu örnekte şimdiye kadar öğrendiğimiz birçok şeyi kullanalım ve bir arada görelim :

--ÜÇGEN TÜRÜNÜ BİZE VEREN PROGRAM--

Yukarıdaki programda import scanner sınıfı kullanmayı,(import java.util.Scanner)değişkenlerin içine değer yazdırmayı(x = tara.nextInt();) ve koşul yapıları içinde ilişkisel operatör kullanmayı (==  && != gibi ) tekrar hatırlayalım.

En başta bizden belli değerler girmemizi isteyen bir program ar ilk aklımıza gelmesi gereken şey Scanner sınıfının programa eklenecek olmasıdır ve bunu import java.util.Scanner; kodu ile yaparız.

Daha sonra scanner tara nesnesi için bellekte belirli bir yer oluşturmamı gerekir. Bu işlemide
Scanner tara = new Scanner(System.in); kodu ile sağlarız. Şimdi sıra üçgenimizin kenar uzunluklarını vermeye geldi her bir kenar uzunluğu tamsayı cinsinden olacağı için "int" değişkeninde 3 tane x,y,z tanımlarız. Bu sayıları 0 a eşitlememizin amacı bir başlangıç değeri belirtmektir. Aksi takdirde derleyici uyarı verir ve başlangıç değeri girmediğimizi söyler.Bu işlemi birçok örnekte yapacağız.

Şimdi sıra geldi kullnıcıdan x y z üçgen kenar uzunluklarını istemeye bunları geçmişte de bildiğimiz üzere System.out.println("y kenarını giriniz :"); kodu ile yaparız her bir kenarı aldıktan sonra her bir kenar için  y = tara.nextInt(); kodlarını kullanarak sayıları int değer olarak aktarması gerektiğini söyleriz.

Şimdi sayıları girdik bilgisayara bunları kayıt etti sıra geldi üçgenin türünü belirlemeye : bunu nasıl yapabiliriz ? hepimizin bildiği gibi kenar sayıları birbirine eşit ise eşkenar üçgen, 2 kenarı birbirine eşit ise ikizkenar üçgen ve tüm kenarları birbirinden farklı ise çeşitkenar üçgen deriz.Görüldüğü gibi durumu türkçe olarak ifade ederken bile ise ifadesini kullandık yani javadaki karşılığı "if-else if-else"
Şimdi kullanacağımız koşulda belli sıra geldi kenarları kıyaslamaya bunuda "ıf else-if" blokları içinde ilişkisel operatörler kullanarak yaparız.


                 if(x==y && y==z ){
System.out.println("üçgen eşkenar üçgendir");
}
else if(x!=y && y!=z && x!=z){
System.out.println("üçgen çeşitkenar üçgendir");
}
else
System.out.println(" üçgen ikizkenar üçgendir");
}

Bu kod bloğu bize ilişkisel operatörlerin kullanımını gösterir. Örneğin : ilk bloğa bakacak olursak if koşulu içinde " x==y && y==z" derken aslında "x=y=z" demek istemiştir yani üçgenin eşkenar üçgen olduğunu demek isteriz ve bunuda if bloğu içinde yaparız.(x=y ve y=z ise)

İkinci kod bloğunda else if koşul içinde kenarların birbirine eşit olmadığını belirtiriz.(x eşit değil y ve y eşit değiz z ise) üçgenimiz çeşitkenar üçgendir.

Üçüncü kod bloğu ise else ifadesini gösterir, koşul programlarında else ifadesinin yanı boş bırakılır. Çünkü yukarıdaki durumlar gerçekleşmediği zaman geriye tek durum kalmıştır oda else in gövdesinde belirtilir. Bu programda geriye kalan tek durum üçgenin ikizkenar oluşudur.

**NOT**: if bloğu içerisinde atama yaparken iki tane eşittir kullanırız (==) aksi takdirde kodumuz çalışmaz. Bu hatada benim yaşadığım hatalardan birisi :)..

MANTIKSAL OPERATÖRLER 

Bu operatörler "boolean" tip değişkeninde tutulur. Kodlamada belli ifadelerle gösterilir. Bunları yazacak olursak :

&&(AND operatörü) : Bu operatörün sağında ve solunda yazan ifadeler true olursa, sonuçta true olur. Onun dışında tüm durumlarda sonuç false olur.

| | (OR OPERATÖRÜ) : Bu operatörün sağındaki ve solunda yazan ifadeler  false olursa sonuç false olur onun dışında sonuçların hepsi true olur.

^ (XOR OPERATÖRÜ) : Bu operatörün sağında ve solunda yazan ifadeler aynı ise(her ikiside true yada her ikiside false) sonuç false olur.İfadeler farklı olduğu zaman(biri false biri true ) sonuç true olur.

!(NOT OPERATÖRÜ) : Bu ifade matematikteki değilini almakla aynıdır. Yani kendinden sonraki gelen ifadenin ters halini alır. True ise false, false ise true dönüşümü yapar.

Şimdi bu öğrendiğimiz operatörleri bir örnek kodla anlamaya çalışalım.

--MANTIKSAL OPERATÖRLER--
Yukarıdaki kodlarda bu ifadelerin kullanımı açıkça verilmiştir. İncelemek için resmin üstüne tıklayıp büyütmek yeterlidir.








Hiç yorum yok:

Yorum Gönder