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
boolean türden bir metot çağrısının if deyiminde kullanımı
/*---------------------------------------------------------------------------------------------------------------------- boolean türden bir metot çağrısının if deyiminde kullanımı----------------------------------------------------------------------------------------------------------------------*/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 (NumberUtil.isEven(val)) // if (NumberUtil.isEven(val) == true)System.out.println("Çift");
elseSystem.out.println("Tek");
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticbooleanisEven(intval)
{
returnval % 2 == 0;
}
}
/*---------------------------------------------------------------------------------------------------------------------- boolean türden bir metot çağrısının if deyiminde kullanımı----------------------------------------------------------------------------------------------------------------------*/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 (!NumberUtil.isEven(val)) // if (NumberUtil.isEven(val) == false) System.out.println("Tek");
elseSystem.out.println("Çift");
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticbooleanisEven(intval)
{
returnval % 2 == 0;
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte bir tane if deyimi vardır. Bu if deyiminin else kısmında başka if deyimi yazılmıştır----------------------------------------------------------------------------------------------------------------------*/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)
System.out.println("Pozitif");
elseif (val == 0)
System.out.println("Sıfır");
elseSystem.out.println("Negatif");
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- Yukarıdaki if deyimi aşağıdaki gibi daha okunabilir olarak 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 > 0)
System.out.println("Pozitif");
elseif (val == 0)
System.out.println("Sıfır");
elseSystem.out.println("Negatif");
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- Yukarıdaki if deyimi aşağıdaki gibi daha okunabilir olarak 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 > 0)
System.out.println("Pozitif");
elseif (val == 0)
System.out.println("Sıfır");
elseSystem.out.println("Negatif");
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki koşullar ayrık olduğundan else-if kullanılması daha uygundur----------------------------------------------------------------------------------------------------------------------*/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)
System.out.println("Pozitif");
if (val == 0)
System.out.println("Sıfır");
if (val < 0)
System.out.println("Negatif");
System.out.println("Tekrar yapıyor musunuz?");
}
}
Sınıf Çalışması: Katsayıları klavyeden girilen ikinci dereceden bir denklemin köklerini bulup ekrana basan programı yazınız
/*---------------------------------------------------------------------------------------------------------------------- Döngü deyimleri: 1. while döngü deyimleri - Kontrolün başta yapıldığı while döngü deyimi (while döngüsü) - Kontrolün sonda yapıldığı while döngü deyimi (do-while döngüsü) 2. for döngü deyimi 3. for-each döngü deyimi----------------------------------------------------------------------------------------------------------------------*//*---------------------------------------------------------------------------------------------------------------------- Kontrolün başta yapıldığı while döngü deyimi (while döngüsü): while (<koşul ifadesi>) <deyim> koşul ifadesinin boolean türden olması gerekir. ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
inti = 0;
while (i < n) {
System.out.printf("i=%d%n", i);
++i;
}
System.out.printf("Döngü sonrası-i:%d%n", i);
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- while döngüsünde yanlışlıkla noktalı virgül konması durumu ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
inti = 0;
while (i < n); {
System.out.printf("i=%d%n", i);
++i;
}
System.out.printf("Döngü sonrası-i:%d%n", i);
System.out.println("Tekrar yapıyor musunuz?");
}
}
while döngüsünde n-kez dönen döngü kalıbı (dizi uyumlu)
/*---------------------------------------------------------------------------------------------------------------------- while döngüsünde n-kez dönen döngü kalıbı (dizi uyumlu) ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
inti = 0;
while (i < n) {
System.out.printf("i=%d%n", i);
++i;
}
System.out.printf("Döngü sonrası-i:%d%n", i);
System.out.println("Tekrar yapıyor musunuz?");
}
}
while döngüsünde n-kez dönen döngü kalıbı
/*---------------------------------------------------------------------------------------------------------------------- while döngüsünde n-kez dönen döngü kalıbı----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
inti = 1;
while (i <= n) {
System.out.printf("i=%d%n", i);
++i;
}
System.out.printf("Döngü sonrası-i:%d%n", i);
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- while döngüsünde n-kez dönen döngü kalıbı (dizi uyumlu)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
inti = n - 1;
while (i >= 0) {
System.out.printf("i=%d%n", i);
--i;
}
System.out.printf("Döngü sonrası-i:%d%n", i);
System.out.println("Tekrar yapıyor musunuz?");
}
}
/*---------------------------------------------------------------------------------------------------------------------- while döngüsünde n-kez dönen döngü kalıbı: n = 4 -> (döngünün içinde basılacak değerler) 3 -> 2 -> 1 -> 0 -> (döngü bitiminde n nin değeri) -1 count: + + + + -> 4----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
while (n-- > 0)
System.out.printf("n=%d%n", n);
System.out.printf("Döngü sonrası-n:%d%n", n);
System.out.println("Tekrar yapıyor musunuz?");
}
}
while döngüsünün parantezi içerisinde okunabilirliği etkilemedeği sürece aşağıdaki gibi bir kod yazılabilir.
/*---------------------------------------------------------------------------------------------------------------------- while döngüsünün parantezi içerisinde bir değişkene değer atanıp atanan değerin kontrolüne ilişkin algoritmalar olabilmektedir. Okunabilirliği etkilemedeği sürece aşağıdaki gibi bir kod yazılabilir. Aşağıdaki örnekte klavyeden sıfır girilene kadar alınan değerlerin toplamı bulunmuştur----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Sayıları girmeye başlayınız:");
intsum = 0;
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0)
sum += val;
System.out.printf("Toplam:%d%n", sum);
}
}
Sınıf Çalışması: Klavyeden sıfır girilene kadar alınan sayıların pozitif ve negatif olanlarının ayrı ayrı toplamlarını bulan programı yazınız
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Klavyeden sıfır girilene kadar alınan sayıların pozitif ve negatif olanlarının ayrı ayrı toplamlarını bulan programı yazınız----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
FindPosNegSumApp.run();
}
}
classFindPosNegSumApp {
publicstaticvoiddisplayResult(intposSum, intnegSum)
{
if (posSum > 0)
System.out.printf("Pozitif sayıların toplamı:%d%n", posSum);
elseSystem.out.println("Hiç pozitif sayı girmediniz");
if (negSum < 0)
System.out.printf("Negatif sayıların toplamı:%d%n", negSum);
elseSystem.out.println("Hiç negatif sayı girmediniz");
}
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.println("Sayıları girmeye başlayınız:");
intposSum = 0, negSum = 0;
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0)
if (val > 0)
posSum += val;
elsenegSum += val;
displayResult(posSum, negSum);
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının basamak sayısını döndüren getDigitsCount isimli metodu yazınız
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının basamak sayısını döndüren getDigitsCount isimli metodu NumberUtil isimli bir sınıfın içerisinde yazınız ve klavyeden alınan değerlerle çağırarak test ediniz 123 -> 12 -> 1 -> 0 ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
GetDigitsCountTest.run();
}
}
classGetDigitsCountTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0) {
intcount = NumberUtil.getDigitsCount(val);
System.out.printf("%d sayısının basamak sayısı:%d%n", val, count);
System.out.print("Bir sayı giriniz:");
}
System.out.printf("0 sayısının basamak sayısı:%d%n", NumberUtil.getDigitsCount(0));
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticintgetDigitsCount(intval)
{
if (val == 0)
return1;
intcount = 0;
while (val != 0) {
++count;
val /= 10;
}
returncount;
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının basamakları toplamını döndüren getDigitsSum isimli metodu yazınız
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının basamakları toplamını döndüren getDigitsSum isimli metodu yazınız ve klavyeden girilen değerlerle çağırarak test ediniz. Metot negatif sayılar için pozitif basamak toplamını döndürecektir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
GetDigitsSumTest.run();
}
}
classGetDigitsSumTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0) {
intcount = NumberUtil.getDigitsSum(val);
System.out.printf("%d sayısının basamakları toplamı:%d%n", val, count);
System.out.print("Bir sayı giriniz:");
}
System.out.printf("0 sayısının basamakları toplamı:%d%n", NumberUtil.getDigitsSum(0));
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticintgetDigitsSum(intval)
{
intsum = 0;
while (val != 0) {
sum += val % 10;
val /= 10;
}
returnMath.abs(sum);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının basamakları toplamını döndüren getDigitsSum isimli metodu yazınız ve klavyeden girilen değerlerle çağırarak test ediniz. Metot negatif sayılar için pozitif basamak toplamını döndürecektir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
GetDigitsSumTest.run();
}
}
classGetDigitsSumTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0) {
intcount = NumberUtil.getDigitsSum(val);
System.out.printf("%d sayısının basamakları toplamı:%d%n", val, count);
System.out.print("Bir sayı giriniz:");
}
System.out.printf("0 sayısının basamakları toplamı:%d%n", NumberUtil.getDigitsSum(0));
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticintgetDigitsSum(intval)
{
val = Math.abs(val);
intsum = 0;
while (val != 0) {
sum += val % 10;
val /= 10;
}
returnsum;
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının tersini döndüren getReverse isimli metodu
yazınız
/*---------------------------------------------------------------------------------------------------------------------- 07.06.2020 Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının tersini döndüren getReverse isimli metodu yazınız ve test ediniz. Örneğin -123 sayısı için metot -321 sayısını döndürecektir 123 -> 3 -> 3 * 10 + 2 = 32 -> 32 * 10 + 1 = 321----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
GetReverseTest.run();
}
}
classGetReverseTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0) {
intreverse = NumberUtil.getReverse(val);
System.out.printf("%d sayısının tersi:%d%n", val, reverse);
System.out.print("Bir sayı giriniz:");
}
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticintgetReverse(intval)
{
intreverse = 0;
while (val != 0) {
reverse = reverse * 10 + val % 10;
val /= 10;
}
returnreverse;
}
}
Kontrolün sonda yapıldığı while döngü deyimi (do-while döngüsü):
/*---------------------------------------------------------------------------------------------------------------------- Kontrolün sonda yapıldığı while döngü deyimi (do-while döngüsü): do <deyim> while (<boolean türden ifade>); Bu döngü deyiminde akış döngüye geldiğinde kontrol yapılmaz. İlk adımdan sonra kontrol yapılmaya başlanır. Yani bu döngü deyiminin en az bir kez çalıştırılacağı garanti altındadır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
inti = 0;
do {
System.out.printf("i=%d%n", i);
++i;
} while (i < n);
System.out.printf("Döngü sonrası:i=%d%n", i);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının basamak sayısını döndüren getDigitsCount isimli metodu NumberUtil isimli bir sınıfın içerisinde yazınız ve klavyeden alınan değerlerle çağırarak test ediniz 123 -> 12 -> 1 -> 0 ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
GetDigitsCountTest.run();
}
}
classGetDigitsCountTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intval;
while ((val = Integer.parseInt(kb.nextLine())) != 0) {
intcount = NumberUtil.getDigitsCount(val);
System.out.printf("%d sayısının basamak sayısı:%d%n", val, count);
System.out.print("Bir sayı giriniz:");
}
System.out.printf("0 sayısının basamak sayısı:%d%n", NumberUtil.getDigitsCount(0));
System.out.println("Tekrar yapıyor musunuz?");
}
}
classNumberUtil {
publicstaticintgetDigitsCount(intval)
{
intcount = 0;
do {
++count;
val /= 10;
} while (val != 0);
returncount;
}
}
do-while döngüsü içerisinde bildirilen bir değişken while parantezinde faaliyet alanı kuralları gereği kullanılamaz
/*---------------------------------------------------------------------------------------------------------------------- do-while döngüsü içerisinde bildirilen bir değişken while parantezinde faaliyet alanı kuralları gereği kullanılamaz ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
do {
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
System.out.printf("%d%n", val * val);
} while (val != 0); //error System.out.println();
}
}
Yukarıdaki örnek aşağıdaki gibi çözülebilir
/*---------------------------------------------------------------------------------------------------------------------- Yukarıdaki örnek aşağıdaki gibi çözülebilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
intval;
do {
System.out.print("Bir sayı giriniz:");
val = Integer.parseInt(kb.nextLine());
System.out.printf("%d%n", val * val);
} while (val != 0);
}
}
Sonsuz döngü: Döngünün koşulundan dolayı sonlanmadığı döngülere denir.
/*---------------------------------------------------------------------------------------------------------------------- Sonsuz döngü: Döngünün koşulundan dolayı sonlanmadığı döngülere denir. Bu durumda hiç sonlanmayan döngüler de sonsuz döngülerdir. Tersine sonsuz döngüler de sonlanabilir. while döngü deyimi ile sonsuz döngü aşağıdaki biçimde oluşturulabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
while (true) {
//...
}
}
}
Sonsuz döngünün sonlandırılması
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte sonsuz döngü oluşturulmuş, döngü içerisinde bir koşul gerçekleştiğinde return deyimi kullanıldığından döngü de sonlanmıştır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
Sample.foo();
}
}
classSample {
publicstaticvoidfoo()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
while (true) {
System.out.print("Bir sayı giriniz:");
intval = Integer.parseInt(kb.nextLine());
if (val == 0)
return;
System.out.println(val * val);
}
}
}
for döngü deyimi
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi: for ([1.kısım]; [2.kısım]; [3.kısım]) <deyim> 1.kısım: Akış for döngü deyimine geldiğinde ilk kez ve bir kez yapılacak kısımdır 2.kısım: for döngü deyimin koşul ifadesidir. Yani buradaki ifadenin boolean türden olması gerekir. Bu ifade doğru olduğu sürece döngü yinelenir. Akış for döngü deyimine ilk kez geldiğinde birinci kısım yapıldıktan sonra koşul kontrolü yapılır 3.kısım: Döngünün bir adımı tamamlandığında bir sonraki adıma geçmek için yapacağı kontrolden hemen önce yapılacak kısımdır----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inti;
for (i = 0; i < 5; ++i)
System.out.printf("i=%d%n", i);
System.out.printf("Döngü sonrası-i=%d%n", i);
}
}
for döngü deyiminin 1.kısmında değişken bildirimi yapılabilir.
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin 1.kısmında değişken bildirimi yapılabilir. Burada bildirilen değişlen yalnızca for döngüsü boyunca görülebilirdir.----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0; i < 5; i++)
System.out.printf("i=%d%n", i);
System.out.printf("Döngü sonrası-i=%d%n", i); //error
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki durum yerel değişkenlerin faaliyet alanı kuralları gereği error oluşturur----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inti;
for (inti = 0; i < 5; i++) //errorSystem.out.printf("i=%d%n", i);
}
}
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki durum yerel değişkenlerin faaliyet alanı kuralları gereği geçerlidir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0; i < 5; i++)
System.out.printf("Birinci döngü:i=%d%n", i);
//...for (inti = 0; i < 5; i++)
System.out.printf("İkinci döngü:i=%d%n", i);
}
}
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi sonunda yanlışlıkla noktalı virgül konması durumu----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0; i < 5; i++);
System.out.println("Merhaba");
}
}
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi sonunda yanlışlıkla noktalı virgül konması durumu. Aşağıdaki durumda error oluştuğuna dikkat ediniz----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0; i < 5; i++);
System.out.printf("i=%d%n", i); //error
}
}
for döngü deyimi ile n-kez dönen döngü kalıbı (dizi uyumlu)
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi ile n-kez dönen döngü kalıbı (dizi uyumlu)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
for (inti = 0; i < n; ++i)
System.out.println("Merhaba");
}
}
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi ile n-kez dönen döngü kalıbı (dizi uyumlu)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
for (inti = n - 1; i >= 0; --i)
System.out.printf("i=%d%n", i);
}
}
for döngü deyimi ile n-kez dönen döngü kalıbı
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi ile n-kez dönen döngü kalıbı----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
for (inti = 1; i <= n; ++i)
System.out.printf("i=%d%n", i);
}
}
for döngü deyiminin birinci ve üçüncü kısmında virgül ayracı ifade ayırmak için kullanılabilir
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin birinci ve üçüncü kısmında virgül ayracı ifade ayırmak için kullanılabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 1, k = 10; i <= 5 && k >= 0; ++i, --k)
System.out.printf("(%d, %d)%n", i, k);
}
}
for döngü deyiminin birinci ve üçüncü kısmında virgül ayracı ifade ayırmak için kullanılabilir (2)
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin birinci ve üçüncü kısmında virgül ayracı ifade ayırmak için kullanılabilir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inti = 0;
for (System.out.println("1.kısım"); i <= 5; System.out.println("Üçüncü kısım"), ++i)
System.out.println("Döngü deyimi");
}
}
for döngü deyiminin birinci kısmında değişken bildirimi varsa virgülle ayırarak bildirim dışında bir ifade yazılamaz.
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin birinci kısmında değişken bildirimi varsa virgülle ayırarak bildirim dışında bir ifade yazılamaz. Bildirilen tüm değişkenlerin aynı türden olması gerekir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0, doublek = 4; i <= 5; System.out.println("Üçüncü kısım"), ++i) //errorSystem.out.println("Döngü deyimi");
}
}
for döngü deyiminin ilginç bir kullanımı
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin ilginç bir kullanımı ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
intsum = 0;
intval;
for (System.out.println("Sayıları girmeye başlayınız:"), System.out.println("Sayı?");
(val = Integer.parseInt(kb.nextLine())) != 0; sum += val, System.out.println("Sayı?"))
;
System.out.printf("Toplam:%d%n", sum);
}
}
for döngü deyiminin ilginç bir kullanımı (2)
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin ilginç bir kullanımı ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
intsum = 0;
intval;
for (System.out.println("Sayıları girmeye başlayınız:"), System.out.println("Sayı?");
(val = Integer.parseInt(kb.nextLine())) != 0; sum += val, System.out.println("Sayı?"))
;
System.out.printf("Toplam:%d%n", sum);
}
}
for döngü deyiminin 3.kısmının boş bırakılması durumu
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin 3.kısmının boş bırakılması durumu ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0; i < 5; ) {
System.out.printf("%d ", i);
++i;
}
System.out.println();
}
}
for döngü deyiminin 1.ve 3.kısmının boş bırakılması while döngü deyimine benzetilebilir
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin 1.ve 3.kısmının boş bırakılması while döngü deyimine benzetilebilir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
inti = 0;
for (; i < 5; ) { //while (i < 5)System.out.printf("%d ", i);
++i;
}
System.out.println();
}
}
for döngü deyiminin 2.kısmının boş bırakılması sonsuz döngü oluşturmak demektir
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyiminin 2.kısmının boş bırakılması sonsuz döngü oluşturmak demektir----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (inti = 0; ; ++i) {
System.out.printf("%d%n", i);
}
}
}
for döngü deyimi ile sonsuz döngü kalıbı
/*---------------------------------------------------------------------------------------------------------------------- for döngü deyimi ile sonsuz döngü kalıbı----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
for (;;) { //sonsuz döngü kalıbı//...
}
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden a ve b değerleri için a'nın b-inci kuvvetini döndüren pow isimli metodu yazınız.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden a ve b değerleri için a'nın b-inci kuvvetini döndüren pow isimli metodu yazınız. Açıklamalar: - Math sınıfının pow metodu kullanılmayacaktır - Metot b nin negatif değerleri için 1 değerini döndürecektir - Metot NumberUtil sınıfı içerisinde yazılacaktır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
PowTest.run();
}
}
classPowTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
for (;;) {
System.out.print("Tabanı giriniz:");
inta = Integer.parseInt(kb.nextLine());
System.out.print("Üssü giriniz:");
intb = Integer.parseInt(kb.nextLine());
System.out.printf("pow(%d, %d)=%d%n", a, b, NumberUtil.pow(a, b));
if (a == 0)
return;
}
}
}
classNumberUtil {
publicstaticintpow(inta, intb)
{
if (b <= 0)
return1;
intresult = 1;
for (inti = 0; i < b; ++i)
result *= a;
returnresult;
}
}
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden a ve b değerleri için a'nın b-inci kuvvetini döndüren pow isimli metodu yazınız. Açıklamalar: - Math sınıfının pow metodu kullanılmayacaktır - Metot b nin negatif değerleri için 1 değerini döndürecektir - Metot NumberUtil sınıfı içerisinde yazılacaktır ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
PowTest.run();
}
}
classPowTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
for (;;) {
System.out.print("Tabanı giriniz:");
inta = Integer.parseInt(kb.nextLine());
System.out.print("Üssü giriniz:");
intb = Integer.parseInt(kb.nextLine());
System.out.printf("pow(%d, %d)=%d%n", a, b, NumberUtil.pow(a, b));
if (a == 0)
return;
}
}
}
classNumberUtil {
publicstaticintpow(inta, intb)
{
if (b <= 0)
return1;
intresult = 1;
while (b-- > 0)
result *= a;
returnresult;
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının Armstrong sayısı olup olmadığını test eden isArmstrong metodunu yazınız ve test ediniz.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının Armstrong sayısı olup olmadığını test eden isArmstrong metodunu yazınız ve test ediniz. Açıklamalar: - Bir sayının her basamağının basamak sayıncı kuvvetleri toplamı sayının kendisine eşitse bu sayıya Armstrong sayısı denir 153 -> 1 + 125 + 27 = 153 - Sayı negatif ise false döndürebilirsiniz----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
IsArmstrongTest.run();
}
}
classIsArmstrongTest {
publicstaticvoidrun()
{
for (intn = -100; n <= 9999999; ++n)
if (NumberUtil.isArmstrong(n))
System.out.println(n);
}
}
classNumberUtil {
publicstaticbooleanisArmstrong(intval)
{
if (val < 0)
returnfalse;
returngetDigitsPowSum(val) == val;
}
publicstaticintgetDigitsPowSum(intval)
{
intcount = getDigitsCount(val);
intsum = 0;
while (val != 0) {
sum += pow(val % 10, count);
val /= 10;
}
returnsum;
}
publicstaticintgetDigitsCount(intval)
{
intcount = 0;
do {
++count;
val /= 10;
} while (val != 0);
returncount;
}
publicstaticintpow(inta, intb)
{
if (b <= 0)
return1;
intresult = 1;
while (b-- > 0)
result *= a;
returnresult;
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının faktoriyelini döndüren factorial isimli metodu yazınız ve test ediniz.
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının faktoriyelini döndüren factorial isimli metodu yazınız ve test ediniz. Açıklamalar: - Metot negatif sayılar için -1 değerini döndürecektir - Faktoriyel tanımı: 0!= 1 1!=1 2!=1*2 ... n!=1 * 2 * ...* (n - 1) * n - Sınır taşması gözardı edilecektir ----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
FactorialTest.run();
}
}
classFactorialTest {
publicstaticvoidrun()
{
java.util.Scannerkb = newjava.util.Scanner(System.in);
System.out.print("Bir sayı giriniz:");
intn = Integer.parseInt(kb.nextLine());
for (inti = 0; i <= n; ++i)
System.out.printf("%d!=%d%n", i, NumberUtil.factorial(i));
}
}
classNumberUtil {
publicstaticintfactorial(intn)
{
if (n < 0)
return -1;
intresult = 1;
for (inti = 2; i <= n; ++i)
result *= i;
returnresult;
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının asal olup olmadığını test eden isPrime metodunu yazınız ve test ediniz
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının asal olup olmadığını test eden isPrime metodunu yazınız ve test ediniz (Yavaş versiyon)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
IsPrimeTest.run();
}
}
classIsPrimeTest {
publicstaticvoidrun()
{
for (inti = 0; i <= 100; ++i)
if (NumberUtil.isPrime(i))
System.out.printf("%d ", i);
System.out.println();
if (NumberUtil.isPrime(1_000_003))
System.out.println("Asal");
elseSystem.out.println("Asal değil");
}
}
classNumberUtil {
publicstaticbooleanisPrime(intval)
{
if (val <= 1)
returnfalse;
inthalfVal = val / 2;
for (inti = 2; i <= halfVal; ++i)
if (val % i == 0)
returnfalse;
returntrue;
}
}
Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının asal olup olmadığını test eden isPrime metodunu yazınız ve test ediniz
/*---------------------------------------------------------------------------------------------------------------------- Sınıf Çalışması: Parametresi ile aldığı int türden bir sayının asal olup olmadığını test eden isPrime metodunu yazınız ve test ediniz. Teorem: Bir sayı karekökünden küçük olan asal sayıların hiç birine bölünemiyorsa asaldır (Çok daha hızlı versiyon)----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
IsPrimeTest.run();
}
}
classIsPrimeTest {
publicstaticvoidrun()
{
for (inti = 0; i <= 100; ++i)
if (NumberUtil.isPrime(i))
System.out.printf("%d ", i);
System.out.println();
if (NumberUtil.isPrime(1_000_003))
System.out.println("Asal");
elseSystem.out.println("Asal değil");
}
}
classNumberUtil {
publicstaticbooleanisPrime(intval)
{
if (val <= 1)
returnfalse;
if (val % 2 == 0)
returnval == 2;
if (val % 3 == 0)
returnval == 3;
if (val % 5 == 0)
returnval == 5;
if (val % 7 == 0)
returnval == 7;
for (inti = 11; i * i <= val; i += 2)
if (val % i == 0)
returnfalse;
returntrue;
}
}
Yukarıda yazılan isPrime metotlarının performanslarını gösteren basit bir test
/*---------------------------------------------------------------------------------------------------------------------- Yukarıda yazılan isPrime metotlarının performanslarını gösteren basit bir test----------------------------------------------------------------------------------------------------------------------*/packagecsd;
classApp {
publicstaticvoidmain(String [] args)
{
IsPrimeTest.run();
}
}
classIsPrimeTest {
publicstaticvoidrun()
{
if (NumberUtil.isPrimeSlow(1_000_003))
System.out.println("Asal");
elseSystem.out.println("Asal değil");
if (NumberUtil.isPrime(1_000_003))
System.out.println("Asal");
elseSystem.out.println("Asal değil");
}
}
classNumberUtil {
publicstaticbooleanisPrimeSlow(intval)
{
if (val <= 1)
returnfalse;
inthalfVal = val / 2;
intcount = 0;
for (inti = 2; i <= halfVal; ++i) {
++count;
if (val % i == 0)
returnfalse;
}
System.out.printf("isPrimeSlow:Count:%d%n", count);
returntrue;
}
publicstaticbooleanisPrime(intval)
{
if (val <= 1)
returnfalse;
if (val % 2 == 0)
returnval == 2;
if (val % 3 == 0)
returnval == 3;
if (val % 5 == 0)
returnval == 5;
if (val % 7 == 0)
returnval == 7;
intcount = 0;
for (inti = 11; i * i <= val; i += 2) {
++count;
if (val % i == 0)
returnfalse;
}
System.out.printf("isPrime:Count:%d%n", count);
returntrue;
}
}
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/