Arkadaşlar merhabalar bu yazımda Java Operatörlerden bahseteceğim.Operatorleri binary operators ve unary operators başlığı altındaki operatörlere göre işleyeceğiz.
1-Binary Operatorlerle başlıyoruz.
1.1-Aritmetik Operatörler: İlkokula giden herkes için tanıdık geliyordur muhtemelen çünkü bunlar : + (addition) , - (subtraction) , / (division) , * (multiplication) , % (modulus , bu belki tanıdık gelmeyebilir.) . Herbirini tek tek göreceğiz sakin.Hemen kısaca kodumuza bakalım ve üzerinde açıklayalım çünkü böyle daha açıklayıcı olur.
public class Operator{public static void main(String[] args){int x = 5;int y = 4;double t = 2;System.out.println(x+y); // outputs : 9System.out.println(x/y); // outputs : 1System.out.println(x*y); // outputs : 20System.out.println(x-y); // outputs : 1System.out.println(x%y); // outputs : 1System.out.println(x/t); // outputs : 2.5System.out.println(x%t); // outputs : 1}}
What does this code do ? Arkadaşlar öncelikle biz burada x,y,t adlı değişkenler tanımladık ve bunları başlattık.x ve y değişkeni yada tanımlayıcıları da diyebilirsiniz bunlar int veri türünde, t ise double veri türündedir.Kod çıktısı olarak ilk önce x+y yani x ve y 'yi topla dedik gördüğünüz gibi toplarsanız 5+4 = 9 olur.Daha sonra x/y yaptık ve sonucu bir oldu :) aslında bizim matematiğimizde böyle bir şey yok fakat programlama dillerinde var.Burada asıl olay şudur int veri türü tamsayı olduğu için siz birbirine bölünmeyen iki sayıyı bölmeye çalıştığınızda size sadece bölüm kısmını verir yani siz 5 ' i 4 e bölerseniz eğer bölümünü verir . Kısa bir örnek daha veriyorum siz eğer 10/4 yaparsanız sonucunu 2 olarak alırsınız 2.5 değil! Diğer kısımda x*y yaptık yani 5*4 = 20 olur.x-y 'nin sonucu ise 5-4 = 1 olur. Evett son olarak mod kısmına geldik bu mod nedir ? Arkadaşlar mod, sizin birbirine böldüğünüz iki sayının kalanıdır.Yani x%y yani 5%4 burada 5 ' i 4 'e bölersek eğer kalanı 1 dir bu yüzden sonucun çıktısı da 1 olur.
Alt kısma bakalım burada özellikle bir boşluk bıraktım çünkü farklı olaylar oluyor . t değişkeni bir ondalıklı sayı türüne ait (double) bu yüzden siz bir tamsayıyı ondalıklı sayıya bölerseniz sonuç da ondalıklı sayı olur. x/t nin sonucu gördüğünüz gibi 5/2 = 2.5 java burada int türünü double'a yükseltir aşağıda numeric promotion kısmında göreceğiz.Son olarak da x%t yapmışız yani 5%2 , şu anlama gelir 5 ' i 2 ' ye böl sonra kalanın değerini ekrana yaz.Değeri 1.
1.2-Numeric Promotion: dArkadaşlar sayısal tanıtım çok çok önemli bir konu bununla ilgili birkaç kural var hemen yazıyorum .
1-Eğer iki değişken farklı veri türüne sahip ise java otomatik olarak küçüğün değerini büyük veri türünün değerine yükseltir.
Ör : Iki değişkeni topluyoruz . Birinin değeri int türünde ise diğeri de float ise java otomatik olarak int türündeki değişkenin değerini float türüne çevirir 4 ise 4.0 olur.
2-Daha küçük türler , yani byte,short ve char ilk olarak int'e yükseltilir.
3- Bütün bu işlemlerden sonra bütün işlenenler aynı veri türüne sahip olurlar .
Üstteki kurallar belki biraz kafa karıştırıcı oldu ama hemen örneklerle pekiştirelim.
public class Operator{public static void main(String[] args){int x = 1;long y = 33;}}
Arkadaşlar x * y nin veri türü nedir diye sorarsam cevabınız ne olur?
Cevaba long diyenler , congrulations! Şimdi buradaki olaylara bi göz atalım neler oliyi ula burada?
İlk kurala tekrar bakın ve geri dönün okumaya. long veri türü int den daha büyük olduğu için java ilk önce int'in yani (x) ' in değerini long türüne yükseltir daha sonra çarpmayı yapar.
Başka bir örneğe daha bakalım.
public class Operator{public static void main(String[] args){short x = 10;short y = 3;}}
x/y 'nin veri türü nedir ? ULA BU NASİ SORİDİR İKİSİ DE AYĞNİDÜR O ZAMAN CEVAP SHORT KEESİN SHORT DEGILSE KEEESSSİNN ARAYA İP SOĞMIŞLAR :)
Arkadaşlar arada ip var :)) Evett kısa bir şekilde konu dışına çıktıktan hemen sonra devam ediyoruz.Kural 2 'ye bakın ve geri dönün . x ve y her ikisi de kural olarak int türüne yükseltilecek daha sonra işlem yapılacak ve veri türü de int olacaktır.Sonucu merak edenler için de yazayım : 3
Son örnek numeric promotion konusunu bitiriyorum.
public class Kerem{public static void main(String[] args){short x = 14;float y = 13;double z = 30;}
Şimdi bütün kuralları kullanacağımız soruya geliyorum.x*y/z nin veri türü nedir ?
Arkadaşlar , x değikeni int veri türüne yükselir daha sonra float veri türüne daha sonra da double 'a , y değişkeni de double veri türüne yükselir daha sonra bütün işlemler gerçekleşir.Hepsinin double'a yükselmesinin sebebi en büyük veri türüne sahip olmasından dolayı.
Dersin videosu :
IT IS OKEY? Arkadaşlar bu dersin videosunu da attım belki birkaç farklılık falan da olabilir ben operatorleri sitede 2 derse ayırdım bu ders bu kadardı.Uzun tutmak istemedim , see you again next lecture . Take care of yourself :)