Kullanıcıdan İnput Alma

1552
views

Bir önceki dersimizde Java’da aritmetik operatörlerinin neler olduğunu ve nasıl kullanıldığını öğrenmiştik. Bu dersimizde ise java’da kullanıcıdan input değerinin nasıl alınacağını öğreneceğiz.

Kullanıcıdan input almak ne demek?

Biz programlarımızı kullanıcılar için yazıyoruz. Bazı durumlarda kullanıcılar bize bu değerleri yani inputları vermesi çok önemli olabiliyor. Çünkü biz kullanıcıdan bu inputları alabilirsek , kullanıcıya o değerleri gösterebiliriz.

Java’da input almayı nasıl sağlarız?

Kullanıcdan input almamızı sağlayan Scanner objesini bilmemiz gerekiyor. Bu derste sadece bu kadarını bilmeniz yeterli. İlerleyen derslerde objelerle ilgili dersimizde detayları bulabileceksiniz.

Scanner classından scanner objesi nasıl oluşturulur?

Yukarıdaki gibi scanner objesini oluşturmaya çalıştığımızda bize bir uyarı verdi. Bunun nedeni Scanner classının farklı bir package da olmasından dolayı. Javanın hazır kütüphanesi içinde yer alıyor. Bu yüzden projeye dahil etmemiz gerekiyor. Dahil etmek için 5. satırda bulunan ampule tıkladığınızda size seçenekler sunacaktır.

Buradan “Add import for java.util.Scanner” tıkladığımızda otomatik olarak yukarı eklenip tanımlanacaktır. Ve uyarı ortadan kalkacaktır.

Yukarıda scanner objesini oluşturduk. Scanner objesinin içinde belli metotlar var. Bu metotlara göre int , double veya string değerleri alacağız.  Şimdi örneklere geçelim.

Yukarıdaki örnekte kullanıcının kaç kardeşi olduğunu öğrenmek istiyoruz. Bunun için ilk olarak kaç kardeşi olduğunu istememiz gerekiyor. Sonrasında girdiğimiz değeri scanner.nextInt() fonksiyonu alacak ve sayi değişkenine atayacak. sayi dğeişkenini ekrana yazdırdığımızda ekrana “3 kardeşiniz var” yazmış olacağız. İnt bir değer için örnek bu şekildeydi.

Şimdi de double için bir örnek yapalım.

Double veri tipinde sayi değişkeni tanımladık yine ekrana yazdırıp 1.2 değerini girdik.

” Girmiş olduğunuz sayı: 1.2 ” çıktısını aldık.

Peki bir yazı değerini almak istersek;

String veri tipinde ad değişkeni tanımladık. Ve scanner.nextLine() fonksiyonu ile kullanıcıdan aldığımız değeri ekrana yazdırdık.

Yukarıdaki örneklerde int , double ve string değerler için örnekler yaptık. Fakat bazen kullanıcıdan int bir değer istememize rağmen kullanıcı string bir değer girebilir. Böyle bir durumda hata alınacaktır. Sonraki derslerde bu durumları yazacağım fakat ön bilgi olması açısından basit bir koşul satırı ile gerekli düzenlemeyi yapabiliriz.

Koşul Durumu

Koşul satırı için if , else yapısını kullanacağız. Eğer kullanıcı int bir değer girerse koşul sağlanmış olacak ve true olacak. Ekrana girilen değer yazılacak.

Eğer kullanıcı int bir değer girmediyse bu sefer else  koşulu uygulanacak ve biz burada hata mesajını göstereceğiz. Aşağıdaki örnekleri inceleyelim.

Kullanıcıdan sayı istedik. int bir değer girdiği için hata almadık.

İnt bir değer istememize rağmen string bir değer girildiği için hata mesajını gösterdik.

Son olarak Scanner sınıfı ile yaşanılan genel bir sorundan bahsetmek istiyorum.

Kullanıcadan ard arda bir int ve bir string değer alacağınız zaman aşağıdaki gibi bir sorun meydana geliyor.

İlk olarak kullanıcıdan kodu girmesini istedik. Kodu girdikten sonra aslında direk parca adını girmesini istemesi gerekirdi. Fakat ikinci inputu almadan direk programı sona erdirdi. Bunun nedeni ilk inputu girdikten sonra entera bastık yani \n ı fazladan bir boşluk olarak aldığı için parca adının yerine boşluk değerini atadı. Yani nextInt ten sonra nextLine istediğimiz durumlarda bu sorun yaşanıyor. Bu durumda bizim bu sorundan kurtulmamız için araya aşağıdaki gibi ek bir kod satırı yazmamız gerekir.

Yukarıdaki gibi herhangi bir değer atamadan dummy olarak sadece scanner.nextLine(); yazdığımızda fazladan boşluğu da bu satır almış olacak ve sorun çözülecek.

Tam tersi durumda ilk String değerini sonrasında ise int değeri almak istediğimizde ise böyle bir sorun yaşanmamaktadır. Örnek aşağıdaki gibidir.

Bir sonraki derse geçmek için tıklayınız.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz