You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tek tırnak içerisinde özel durumlar dışında birden fazla karakter yazılamaz.
/*---------------------------------------------------------------------------------------------------------------------- Tek tırnak içerisinde özel durumlar dışında birden fazla karakter yazılamaz. Özel durumlar da aslında tek bir karaktere karaktere karşılık gelen sabitin yazılmasıdır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch = 'abcd'; //errorSystem.out.println(ch);
}
}
Ters bölüden sonra özel karakterler dışında karakter yazılamaz
/*---------------------------------------------------------------------------------------------------------------------- Ters bölüden sonra özel karakterler dışında karakter yazılamaz ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch = '\k'; //error
}
}
Ters bölü karakteri tek tırnak içersine iki tane olarak yazılmalıdır
/*---------------------------------------------------------------------------------------------------------------------- Ters bölü karakteri tek tırnak içersine iki tane olarak yazılmalıdır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch = '\\';
System.out.println(ch);
}
}
Tek tırnak karakter sabiti tek tırnak içerisinde ters bölü ile yazılmalıdır
/*---------------------------------------------------------------------------------------------------------------------- Tek tırnak karakter sabiti tek tırnak içerisinde ters bölü ile yazılmalıdır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch = '\'';
System.out.println(ch);
}
}
İki tırnak karakter sabiti tek tırnak içerisinde iki türlü kullanılabilir
/*---------------------------------------------------------------------------------------------------------------------- İki tırnak karakter sabiti tek tırnak içerisinde iki türlü kullanılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch1 = '\"';
charch2 = '"';
System.out.println(ch1);
System.out.println(ch2);
}
}
İki tırnak içerisinde (String atomunda) ter bölü yazılması gereken karakterler anlamlıdır.
/*---------------------------------------------------------------------------------------------------------------------- İki tırnak içerisinde (String atomunda) ter bölü yazılması gereken karakterler anlamlıdır. Aşağıdaki örnekye tab ve line feed karakterleri ile işlem yaopılmış olur ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("C:\test\names.txt");
}
}
/*---------------------------------------------------------------------------------------------------------------------- Yukarıdaki işlem aşağıdaki gibi yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("C:\\test\\names.txt");
}
}
Aşağıdaki durumda ters bölüden sonra özel karakter kullanılmadığından error oluşur
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki durumda ters bölüden sonra özel karakter kullanılmadığından error oluşur ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("C:\mest\people.txt"); //error
}
}
İki tırnak karakteri iki tırnak içerisinde ters bölü ile kullanılmalıdır
/*---------------------------------------------------------------------------------------------------------------------- İki tırnak karakteri iki tırnak içerisinde ters bölü ile kullanılmalıdır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("\"ankara\"");
}
}
İki tırnak karakteri iki tırnak içerisinde ters bölü ile kullanılmalıdır
/*---------------------------------------------------------------------------------------------------------------------- İki tırnak karakteri iki tırnak içerisinde ters bölü ile kullanılmalıdır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("\"ankara");
}
}
Tek tırnak karakteri iki tırnak içerisinde iki şekilde kullanılabilir
/*---------------------------------------------------------------------------------------------------------------------- Tek tırnak karakteri iki tırnak içerisinde iki şekilde kullanılabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("'ankara\'");
}
}
Tek tırnak karakteri iki tırnak içerisinde iki şekilde kullanılabilir
/*---------------------------------------------------------------------------------------------------------------------- Tek tırnak karakteri iki tırnak içerisinde iki şekilde kullanılabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("'ankara");
}
}
Ters bölü ve u ile bir karakterin yazılması
/*---------------------------------------------------------------------------------------------------------------------- Ters bölü ve u ile bir karakterin sıra numarası hexadecimal olarak tek tırnak içerisinde yazıldığında o karakter ilişkin sabit yazılmış olur ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch = '\u0175';
System.out.println(ch);
}
}
Ters bölü u ile değişken isimlerine ilişkin karakterler de belirlenebilir
/*---------------------------------------------------------------------------------------------------------------------- Ters bölü u ile değişken isimlerine ilişkin karakterler de belirlenebilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
int \u0175abc = 1;
System.out.println(\u0175abc);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Ters bölü u ile değişken isimlerine ilişkin karakterler de belirlenebilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
int \u0061 = 1;
System.out.println(a);
}
}
Ters bölü u iki tırnak içerisinde de anlamlıdır
/*---------------------------------------------------------------------------------------------------------------------- Ters bölü u iki tırnak içerisinde de anlamlıdır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
System.out.println("Merhaba \u0175");
}
}
Bir tamsayı önüne bir ek almadan yazıldığında decimal yazılmış olur
/*---------------------------------------------------------------------------------------------------------------------- Bir tamsayı önüne bir ek almadan yazıldığında decimal yazılmış olur ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 67; //decimal sabitSystem.out.println(a);
}
}
Tamsayı sabitinin önünen sıfır ve x (büyük veya küçük) yazıldığında bu ekten sonra gelen basamaklar hexadimal basamaklar olarak yazılabilir
/*---------------------------------------------------------------------------------------------------------------------- Tamsayı sabitinin önünen sıfır ve x (büyük veya küçük) yazıldığında bu ekten sonra gelen basamaklar hexadimal basamaklar olarak yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 0x43;
System.out.println(a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Tamsayı sabitinin önünen sıfır ve x (büyük veya küçük) yazıldığında bu ekten sonra gelen basamaklar hexadimal basamaklar olarak yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 0xA; //hexadecimalSystem.out.println(a);
}
}
Tamsayı sabitinin önünen sıfır yazıldığında bu ekten sonra gelen basamaklar octal basamaklar olarak yazılabilir
/*---------------------------------------------------------------------------------------------------------------------- Tamsayı sabitinin önünen sıfır yazıldığında bu ekten sonra gelen basamaklar octal basamaklar olarak yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 012; //octalSystem.out.println(a);
}
}
Java 7 ile birlikte sabitin başına sıfır ve b (büyük veya küçük) yazıldığından ikilik sistemde basamaklar yazılabilir
/*---------------------------------------------------------------------------------------------------------------------- Java 7 ile birlikte sabitin başına sıfır ve b (büyük veya küçük) yazıldığından ikilik sistemde basamaklar yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 0b1010; //binarySystem.out.println(a);
}
}
Gerçek sayı sabit sabitlerinin üstel gösterilişi
/*---------------------------------------------------------------------------------------------------------------------- Gerçek sayı sabit sabitlerinin üstel gösterilişi ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doublea = 1.23E23;
System.out.printf("%f%n", a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Gerçek sayı sabit sabitlerinin üstel gösterilişi ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doublea = 123E+23;
System.out.printf("%f%n", a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Gerçek sayı sabit sabitlerinin üstel gösterilişi ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doublea = 123E-23;
System.out.printf("%.30f%n", a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Gerçek sayı sabit sabitlerinin üstel gösterilişi ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doublea = 123e-23;
System.out.printf("%.30f%n", a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Gerçek sayı sabit sabitlerinin üstel gösterilişi ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doubleavogadro = 6.02E23;
System.out.printf("%f%n", avogadro);
}
}
Java 7 ile birlikte bir sabit içerisinde alttire karakteri kullanılabilmektedir
/*---------------------------------------------------------------------------------------------------------------------- Java 7 ile birlikte bir sabit içerisinde alttire karakteri kullanılabilmektedir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 0x1F_C0;
System.out.printf("a=%d%n", a);
System.out.printf("a=0x%X%n", a);
}
}
Alttire karakteri kullanılabildiği yerde istenildiği kadar yazılabilir
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri kullanılabildiği yerde istenildiği kadar yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 1________________________________________0;
System.out.printf("a=%d%n", a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri kullanılabildiği yerde istenildiği kadar yazılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
longa = 0x00_00_10_01__A0_00_00_00L;
System.out.printf("a=%d%n", a);
}
}
Alttire karakteri karakter sabitleri içerisinde geçersizdir
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri karakter sabitleri içerisinde geçersizdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
charch = '\u01_75'; //errorSystem.out.println(ch);
}
}
Alttire karakteri sabitin başında ya da sonunda geçersizdir
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri sabitin başında ya da sonunda geçersizdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = _34;//errorintb = 45_;//error//...
}
}
Alttire karakteri sayı nokta içeriyosa noktadan önce ya da sonra geçersizdir
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri sayı nokta içeriyosa noktadan önce ya da sonra geçersizdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doublea = 3_.14; //errordoubleb = 3._14; //error
}
}
Alttire karakteri sabit sonundaki eklerden önce ya da sonra kullanılamaz
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri sabit sonundaki eklerden önce ya da sonra kullanılamaz----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
longa = 10L_; //errorlongb = 10_L; //error
}
}
Alttire karakteri sabitin önündeki eklerden önce sonra veya arasında geçersizdir
/*---------------------------------------------------------------------------------------------------------------------- Alttire karakteri sabitin önündeki eklerden önce sonra veya arasında geçersizdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
longa = 0x_10; //errorlongb = 0_x10; //errorlongb = _0_x10; //error
}
}
Octal sabitler için önek ile sabitin ilk basamağı arasında alttire karakteri geçerlidir
/*---------------------------------------------------------------------------------------------------------------------- Octal sabitler için önek ile sabitin ilk basamağı arasında alttire karakteri geçerlidir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 0_12;
}
}
Octal sabitin önekinden önce alttire yine geçersizdir
/*---------------------------------------------------------------------------------------------------------------------- Octal sabitin önekinden önce alttire yine geçersizdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = _012; //error
}
}
Gerçek sayı sabitlerinin tamsayı kısmının değeri sıfırsa noktadan önce sıfır yazılmayabilir.
/*---------------------------------------------------------------------------------------------------------------------- Gerçek sayı sabitlerinin tamsayı kısmının değeri sıfırsa noktadan önce sıfır yazılmayabilir. Aynı durum noktadan sonraki kısmı sıfır ise, sıfır yazılmayabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
doublea = .1; //0.1doubleb = 1.; //1.0System.out.println(a);
System.out.println(b);
}
}
Operatörler
/*---------------------------------------------------------------------------------------------------------------------- Operatörler 3(üç) biçimde sınıflandırılabilir: 1. İşlevlerine göre sınıflandırma: - Aritimetik Operatörler - Karşılaştırma operatörleri - Mantıksal Operatörler - Bitsel Operatörler - Özel amaçlı operatörler 2. Operand sayılarına göre sınıflandırma - Tek operandlı (unary) - İki operandlı (binary) - Üç operandlı (ternary) 3. Operatörün konumuna göre sınıflandırma: - önek operatörler (prefix) - araek operatörler (infix) - sonek operatörler (postfix) Operatörün kısıtı (constraint) Operatörün ürettiği değer (product value): Operatörün yan etkisi (side effect) Operatörün önceliği (precedence): a = b + c * d; i1: c * d i2: b + i1 i3: a = i2 a = (b + c) * d; i1: b + c i2: c * i1 i3: a = i2 a = b + c - d //soldan sağa i1: b + c i2: i1 - d i3: a = i2 ----------------------------------------------------------------------------------------------------------------------*/
Aritmetik 4 işlem ve mod operatörü (bölme hariç)
/*---------------------------------------------------------------------------------------------------------------------- Aritmetik 4 işlem ve mod operatörü (bölme hariç)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Birinci sayıyı giriniz:");
inta = Integer.parseInt(kb.nextLine());
System.out.print("İkinci sayıyı giriniz:");
intb = Integer.parseInt(kb.nextLine());
System.out.printf("%d + %d = %d%n", a, b, a + b);
System.out.printf("%d - %d = %d%n", a, b, a - b);
System.out.printf("%d * %d = %d%n", a, b, a * b);
System.out.printf("%d %% %d = %d%n", a, b, a % b);
}
}
Bölme işleminde operandlar tamsayı türündense sonuç tamsayı türünden çıkar.
/*---------------------------------------------------------------------------------------------------------------------- Bölme işleminde operandlar tamsayı türündense sonuç tamsayı türünden çıkar. Sonucun noktadan sonraki kısmı atılır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Birinci sayıyı giriniz:");
inta = Integer.parseInt(kb.nextLine());
System.out.print("İkinci sayıyı giriniz:");
intb = Integer.parseInt(kb.nextLine());
System.out.printf("%d / %d = %d%n", a, b, a / b);
}
}
Mod operatörünün birinci operandı negatif ise sonuç hep negatif çıkar. Pozitif ise hep pozitif çıkar
/*---------------------------------------------------------------------------------------------------------------------- Mod operatörünün birinci operandı negatif ise sonuç hep negatif çıkar. Pozitif ise hep pozitif çıkar ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Birinci sayıyı giriniz:");
inta = Integer.parseInt(kb.nextLine());
System.out.print("İkinci sayıyı giriniz:");
intb = Integer.parseInt(kb.nextLine());
System.out.printf("%d %% %d = %d%n", a, b, a % b);
}
}
Mod operatörü Java' da gerçek sayılar için de kullanılabilir
/*---------------------------------------------------------------------------------------------------------------------- Mod operatörü Java' da gerçek sayılar için de kullanılabilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Birinci sayıyı giriniz:");
doublea = Double.parseDouble(kb.nextLine());
System.out.print("İkinci sayıyı giriniz:");
doubleb = Double.parseDouble(kb.nextLine());
System.out.printf("%f %% %f = %f%n", a, b, a % b);
}
}
Sınıf Çalışması: getDigitsSum metodunu yazınız.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden 3 basamaklı bir sayının basamakları toplamını döngü kullanmadan döndüren getDigitsSum metodunu yazınız. Metot sayının basamak sayısı kontrolünü yapmayacaktır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
inta = Integer.parseInt(kb.nextLine());
System.out.printf("%d sayısının basamakları toplamı:%d%n", a, NumberUtil.getDigitsSum(a));
}
}
classNumberUtil {
publicstaticintgetDigitsSum(intval)
{
inta, b, c;
a = val / 100;
b = val / 10 % 10; //val % 100 / 10c = val % 10;
returnMath.abs(a + b + c);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örneği inceleyiniz ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta, b = 10, c = 3;
a = b - - - - - - - - - - c;
System.out.println(a);
}
}
++ operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir.
/*---------------------------------------------------------------------------------------------------------------------- 31.05.2020 ++ operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir. Bu operatör nasıl kullanılırsa kullanılsın operandının değerini bir artırır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 10;
++a; // a = a + 1;System.out.println(a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- ++ operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir. Bu operatör nasıl kullanılırsa kullanılsın operandının değerini bir artırır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 10;
a++; // a = a + 1;System.out.println(a);
}
}
++ operatörünün prefix kullanımında ürettiği değer (işleme giren değer) artırılmış değerdir
-- operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir.
/*---------------------------------------------------------------------------------------------------------------------- -- operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir. Bu operatör nasıl kullanılırsa kullanılsın operandının değerini bir azaltır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 10;
--a; // a = a - 1;System.out.println(a);
}
}
-- operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir.
/*---------------------------------------------------------------------------------------------------------------------- -- operatörü iki şekilde operatörü postfix ve prefix olarak kullanılabilir. Bu operatör nasıl kullanılırsa kullanılsın operandının değerini bir azaltır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 10;
a--; // a = a - 1;System.out.println(a);
}
}
-- operatörünün prefix kullanımında ürettiği değer (işleme giren değer) azaltılmış değerdir
Mantıksal operatörlerin kısa devre (short circuit) davranışı (2)
/*---------------------------------------------------------------------------------------------------------------------- Mantıksal operatörler doğru sonuca yani matematiksel olarak yapılacak olursa elde edilecek sonuca en kısa yoldan ulaşabilmek için (kısa devre davranışını kullanarak) en soldaki ifadeyi önce yaparlar. Aşağıdaki örnekte && operatörü || operatöründen öncelikli de olsa önce || işlemi yapılır. Ancak && operatörünün önceliği ile elde edilecek sonuç değişmez----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
booleanresult;
result = Sample.foo() || Sample.bar() && Sample.tar();
System.out.printf("result:%b%n", result);
}
}
classSample {
publicstaticbooleanfoo()
{
System.out.println("foo");
returntrue;
}
publicstaticbooleanbar()
{
System.out.println("bar");
returnfalse;
}
publicstaticbooleantar()
{
System.out.println("tar");
returnfalse;
}
}
Mantıksal operatörlerin kısa devre (short circuit) davranışı (3)
/*---------------------------------------------------------------------------------------------------------------------- Mantıksal operatörler doğru sonuca yani matematiksel olarak yapılacak olursa elde edilecek sonuca en kısa yoldan ulaşabilmek için (kısa devre davranışını kullanarak) en soldaki ifadeyi önce yaparlar----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
booleanresult;
result = Sample.foo() && Sample.bar() || Sample.tar();
System.out.printf("result:%b%n", result);
}
}
classSample {
publicstaticbooleanfoo()
{
System.out.println("foo");
returnfalse;
}
publicstaticbooleanbar()
{
System.out.println("bar");
returnfalse;
}
publicstaticbooleantar()
{
System.out.println("tar");
returnfalse;
}
}
Bitsel AND (&)ve bitsel OR (|) operatörleri tamsayılar ile çalışırlar.
/*---------------------------------------------------------------------------------------------------------------------- Bitsel AND (&)ve bitsel OR (|) operatörleri tamsayılar ile çalışırlar. Ancak boolean türü ile işlem yapıldığında kısa devre davranışı olmayan AND ve OR operatörleri olarak düşünülebilirler ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
booleanresult;
result = Sample.foo() | Sample.bar() & Sample.tar();
System.out.printf("result:%b%n", result);
}
}
classSample {
publicstaticbooleanfoo()
{
System.out.println("foo");
returntrue;
}
publicstaticbooleanbar()
{
System.out.println("bar");
returnfalse;
}
publicstaticbooleantar()
{
System.out.println("tar");
returnfalse;
}
}
/*---------------------------------------------------------------------------------------------------------------------- Bitsel AND (&)ve bitsel OR (|) operatörleri----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 10; //1010intb = 11;//1011intc;
c = a & b;
System.out.printf("c=%d%n", c);
c = a | b;
System.out.printf("c=%d%n", c);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örneği inceleyiniz----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 10;
a = a++;
System.out.printf("a=%d%n", a);
}
}
Mantıksal değil operatörünün flag değişkenlerde kullanımı
/*---------------------------------------------------------------------------------------------------------------------- Mantıksal değil operatörünün flag değişkenlerde kullanımı----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
booleanflag = false;
flag = !flag;
System.out.println(flag);
}
}
Atama operatörü sağdan sola önceliklidir
/*---------------------------------------------------------------------------------------------------------------------- Atama operatörü sağdan sola önceliklidir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta, b, c;
a = b = c = 10;
System.out.printf("a=%d%n", a);
System.out.printf("b=%d%n", b);
System.out.printf("c=%d%n", c);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte atama operatörünün birinci operandının değişken olması gerektiğinden error oluşur----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 1, b = 34, c = 34;
(a = b) = c; //errorSystem.out.printf("a=%d%n", a);
System.out.printf("b=%d%n", b);
System.out.printf("c=%d%n", c);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte hata oluşmaz. Parantez gereksizdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 1, b = 34, c = 34;
a = (b = c);
System.out.printf("a=%d%n", a);
System.out.printf("b=%d%n", b);
System.out.printf("c=%d%n", c);
}
}
İşlemli atama operatörlerinin genel biçimi:
/*---------------------------------------------------------------------------------------------------------------------- İşlemli atama operatörlerinin genel biçimi: <ifade1> <op>= <ifade2> <ifade1> = <ifade1> op <ifade2> a += b -> a = a + b; a /= b -> a = a / b a %= b -> a = a % b----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 1, b = 34;
a += b; // a = a + bSystem.out.printf("a=%d%n", a);
System.out.printf("b=%d%n", b);
}
}
/*---------------------------------------------------------------------------------------------------------------------- İşlemli atama operatörleri ifadeleri daha basit yazmak için tercih edilebilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inta = 1, b = 3, c = 2;
a *= b + c; //a = a * (b + c);System.out.printf("a=%d%n", a);
}
}
/*---------------------------------------------------------------------------------------------------------------------- if deyiminin genel biçimi: if (<boolean türden ifade>) <deyim> [ else <deyim> ]----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val % 2 == 0)
System.out.println("Çift");
elseSystem.out.println("Tek");
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- else kısmı olmayan if deyimleri yazılabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val % 2 == 0)
val /= 2;
System.out.printf("val=%d%n", val);
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- if deyiminin parantezi sonuna noktalı virgül konması ve oluşabilecek hatalı durum----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val % 2 == 0);
val /= 2;
System.out.printf("val=%d%n", val);
System.out.println("Tekrar yapıyor musunuz?");
}
}
Aşağıdaki örnekte else'in ait olduğu bir if deyimi olmadığından error oluşur
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte else'in ait olduğu bir if deyimi olmadığından error oluşur----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val % 2 == 0);
val /= 2;
else//errorval *= 2;
System.out.printf("val=%d%n", val);
System.out.println("Tekrar yapıyor musunuz?");
}
}
Aşağıdaki örnekte else kısmı içteki if deyimine ait olur (dangling else)
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte else kısmı içteki if deyimine ait olur (dangling else)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val > 0)
if (val % 2 == 0)
System.out.println("Pozitif çift");
elseSystem.out.println("Pozitif değil");
System.out.println("Tekrar yapıyor musunuz?");
}
}
Yukarıdaki örnekte dangling else durumu aşağıdaki gibi bileşik deyim koyarak düzeltilebilir
/*---------------------------------------------------------------------------------------------------------------------- Yukarıdaki örnekte dangling else durumu aşağıdaki gibi bileşik deyim koyarak düzeltilebilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val > 0) {
if (val % 2 == 0)
System.out.println("Pozitif çift");
}
elseSystem.out.println("Pozitif değil");
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki durumda bileşik deyim kullanmaya gerek yoktur. Çünkü if deyimi else kısmı ile birlikte tek bir deyimdir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val > 0)
if (val % 2 == 0)
System.out.println("Pozitif çift");
elseSystem.out.println("Pozitif tek");
elseSystem.out.println("Pozitif değil");
System.out.println("Tekrar yapıyor musunuz?");
}
}