Bu yazıda kullanıcıdan alınan sayının rakamları arasındaki en büyük ve en küçük rakamlarını for döngüsü ile tespit edeceğiz.
İlk adım olarak kullanıcıdan veri alabilmemizi sağlayan Scanner kütüphanesini projemize ekliyoruz.
import java.util.Scanner;
Rakamlar 0 ile 10 arasında olduğu için max ve min değişkenlerinin değerlerini 0 ve 10 olarak ayarlıyoruz.
int max = 0; int min = 10;
Kullanıcıdan sayıları String tipinde alıyoruz. Çünkü rakamları ayırmak için kullanacağımız split metodu sadece String ifadeler üzerinde çalışıyor.
Scanner veriAl = new Scanner(System.in); String sayi = veriAl.next();
Kullanıcıdan sayıyı String tipinde aldıktan sonra split metodu ile tüm ‘harfleri’ tek tek ayırıp dizinin içine atalım.
String[] rakamlar = sayi.split("");
For döngüsünün boyutunu rakamlar dizisinin büyüklüğü kadar yapıyoruz. If ile bir koşul yazıyoruz. Koşulumuz rakamlar dizisinin ilk elemanının max değişkeninden yani 0 dan büyük mü olduğunu denetliyoruz. Örnek sayımız 2 olsun. 2 sayısı 0 dan büyük olduğuna göre koşul gerçekleşiyor. İlk koşul sağlandığı için max değişkeninin değeri 2 oluyor. Rakamlar dizisinin ikinci elemanı ise 1 olsun. 1 ile max değişkeni (yani 2 sayısı) karşılaştırıldığında koşul sağlanmıyor. Bu yüzden if koşulu sağlanamıyor ve else koşuluna geliyor. 1 sayısı min (yani 10) sayısından küçük olduğu için artık min değişkeninin değeri 1 oluyor. Böyle böyle diğer rakamları da hesaplıyor.
for (int i = 0; i < rakamlar.length; i++) { if (Integer.parseInt(rakamlar[i]) > max) { max = Integer.parseInt(rakamlar[i]); } else if (Integer.parseInt(rakamlar[i]) < min) { min = Integer.parseInt(rakamlar[i]); } }
Son olarak sonuçları ekrana yazdırıyoruz. Kodun tamamı aşağıdadır.
// Scanner kütüphanesi. import java.util.Scanner; public class GirilenSayiIcindekiEnBuyukveEnKucukRakamiBulma { public static void main(String[] args) { // Değişkenler tanımlanıyor. int max = 0; int min = 10; System.out.print("Sayı giriniz: "); // Scanner nesnesi oluşturuluyor. Scanner veriAl = new Scanner(System.in); // Kullanıcıdan sayıyı String tipinde alacağız. String sayi = veriAl.next(); // Alınan değerin harflerini tek tek diziye atıyoruz. String[] rakamlar = sayi.split(""); for (int i = 0; i < rakamlar.length; i++) { if (Integer.parseInt(rakamlar[i]) > max) { max = Integer.parseInt(rakamlar[i]); } else if (Integer.parseInt(rakamlar[i]) < min) { min = Integer.parseInt(rakamlar[i]); } } System.out.println("En büyük rakam: " + max); System.out.println("En küçük rakam: " + min); } }
Merhaba Abdullah,
Muhtemelen kodu tarayıcı tabanlı bir derleyici üzerinden çalıştırdığınız için çalışmamaktadır. Hata kodunu atarsanız yardımcı olmak isterim.
İyi günler dilerim.