Java Ders-2 / Ekrana Yazı Yazdırma – Girdi Alma – Girdiyi Çıktıda Kullanma

Yayınlandı: 02 Aralık 2012 yasirkula tarafından Java, Yazılım içinde
Etiketler:, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Hepinize merhaba,

Bu derste Java’da nasıl konsola yazı yazdırılacağını, kullanıcıdan klavye ile veri alınacağını ve alınan bu verinin nasıl çıktılarımızda (output) kullanılabileceğini göstereceğim.

Ekrana Yazı Yazdırmak

İlk programımızı yazmaya başlayalım! Öncelikle JCreator’ı açıp sol üstten “File-New-Blank Workspace…” yolunu izleyin ve “Name:” olarak herhangi bir şey girin (“Yazı Yazmak” gibi…) ve “Finish“e basın. Bu size yeni bir çalışma ortamı oluşturacaktır. Bir çalışma ortamı bir veya birden çok projeden oluşur. Tek amacı yazdığınız kodları derli toplu tutmaktır (Özellikle büyük çaplı yazılımlarda tüm proje dosyalarının tek yerde toplanması iyi bir şeydir.). Şimdi yeni bir proje açıp içerisine ilk programımızı yazacağız. Projeler de birbirine bağımlı ya da bağımsız kodlar olarak düşünülebilir. Amaçları yine ortamı derli toplu tutmaktır. Yeni bir proje oluşturmak için “File-New-Project…-Basic Java Application” yolunu izleyin. Artık başlayabiliriz.

Şimdi F5’e basarsanız ya da “Run-Run Project…” yolunu izlerseniz siyah bir konsol ekranında “Hello World!” yazdığını göreceksiniz. Şimdi JCreator’a geri dönün ve “Hello World!” yazan yeri “Merhaba Dunya!” olarak değiştirin. Tekrar F5’e bastığınızda bu sefer ekrana “Merhaba Dunya!” yazdığını göreceksiniz. Buradan da anlaşılacağı üzere “System.out.println( “Yazı” ); ” komutu, içerisine yazılan “Yazı”yı ekrana yazdırmaya ve ardından bir satır aşağı inmeye yarar. Buradaki “println”in açılımı “print line”dır. Bu komutun bir başka versiyonu olan “System.out.print( “Yazı” ); ” ise yine “Yazı”yı ekrana yazdırır ancak println‘den farklı olarak yazdırma işleminden sonra bir alt satıra inmez. Bunu bir örnekle daha iyi görebiliriz. “System.out.println(“Merhaba Dunya!”); ” satırından bir önceki satıra “System.out.println( “Bu satirdan sonra bir alt satira gececek.” ); ” yazın. Göreceğiniz üzere ekrana şu çıktı verilecek:

Bu satirdan sonra bir alt satira gececek.

Merhaba Dunya!

Az önce yazdığımız kodun bir üst satırına bu sefer “System.out.print( “Bu satirdan sonra alt satira gecmeyecek.” ); ” yazın. Ekrandaki çıktı şu şekilde olacaktır:

Bu satirdan sonra alt satira gecmeyecek.Bu satirdan sonra bir alt satira gececek.

Merhaba Dunya!

NOT1: Fark etmişsinizdir, yazılarda Türkçe karakter kullanmıyor; “ı” yerine “i”, “ü” yerine “u” kullanıyorum. Çünkü Java konsolu şu haliyle Türkçe karakterleri kabul etmemekte ve göstermemekte.

NOT2: “System.out.println()” de neyin nesi diyebilirsiniz. Bu bir metoddur (method). Metodlar, içlerine veri girişi yapılabilinen ve girilen veriye göre işlemler yapıp sonuç veren kod bloklarıdır. “System.out.println()” metodu ise bizim için önceden tanımlanmıştır ve bu sayede onun içerisinde yazılan kodlarla hiç uğraşmamıza gerek kalmamaktadır. Bizim tek bilmemiz gereken ekrana yazı yazdırmak için “System.out.println()” metodunun kullanıldığıdır.

HATIRLATMA: İlk derste de bahsettiğim üzere hem Java’da hem de diğer çoğu programlama dillerinde çoğu satırın sonuna ‘;‘ işareti konulur. Bu, o satırda yapılan işlemin bittiğini belirtir. Ancak mesela if, while gibi ifadelerde ve method, obje tanımlamalarında satır sonuna bu işaret konulmaz.

Eğer “System.out.println()” veya “System.out.print()” metodlarının birinin içine “\n” ikilisini yazarsanız, bu ikiliyi yazdığınız anda konsolda yeni bir satıra geçilir. Bu oldukça büyük bir kolaylık sağlar ve ikiliyi ne kadar kullanırsanız o kadar çok satır aşağı inersiniz. Programımızda en son yazdığımız koddan bir önceki satıra bu sefer “System.out.print( “Bu satırdan sonra 2 satır aşağı\n inecek.\n\n” ); ” eklemesi yapıp programı çalıştırın. Sonuç beklediğimiz gibi gelecektir:

Bu satırdan sonra 2 satır aşağı

inecek.

Bu satirdan sonra alt satira gecmeyecek.Bu satirdan sonra bir alt satira gececek.

Merhaba Dunya!

Gördüğünüz gibi “\n”in yeri önemlidir. ” inecek.” kelimesinden önce de bir “\n” kullandığımızdan dolayı ” inecek.” kelimesi bir alt satırda yazılmıştır. En sonra iki adet “\n” kullandığımız için de cümle bittikten sonra 2 satır aşağı inilmiş ve yazıların devamı buradan devam ederek yazılmaya başlanmıştır.

Kullanıcıdan Veri Almak & Bu Veriyi Ekrana Yazdırmak

Hemen hemen  her program bir şekilde kullanıcıdan veri almaktadır. Şimdi biz de klavyeden çeşitli veriler alacak ve bu verileri daha sonra kullanmak üzere ‘değişken’lerin içerisine atayacağız.

Bu işlemi gerçekleştirmek için önce program kodunuzun en üstüne yeni bir satır oluşturup içine “import java.util.Scanner; ” yazın. Bu kodun ne yaptığını henüz bilmenize gerek yok ama bilmeniz gereken kullanıcıdan veri girişi almak için bu kodun olması gerektiğidir. Ardından “public static void main(String[] args) { ” satırından bir sonraki satıra “Scanner scan = new Scanner( System.in ); ” komutunu yazın. Bunu da tam olarak bilmenize gerek yok. Kısaca burada “scan” adında, “Scanner” türünde (Diğer meşhur türler: int, float, double vb.) bir değişken (aslında obje) oluşturuyoruz. Bu kodları görüp de moralinizi bozmayın, bunlar biraz daha üst seviye konularla alakalı şeyler ve bu yüzden bu kodları anlamamanız çok normal.

Artık bu 2 gerekli işlemi yaptıktan sonra veri girişi almaya hazırız. Ancak veri almadan önce veriyi depolayacağımız bir değişken (RAM’de bir hafıza hücresi) oluşturmamız en sağlıklısı. Bu yüzden “Scanner“lı satırın bir altında “int” türünde ve “sayi” adında bir değişken oluşturun (Nasıl yapılacağıyla ilgili Ders-1’e bakabilirsiniz.). Eğer Ders-1’de nasıl yapacağınızı anlamadıysanız söyleyeyim: “int sayi; “. Bu işlemden sonra şu kodu yazın: “sayi = scan.nextInt(); “. Burada “scan” objesinin bir metodu olan “nextInt()“i kullanıyoruz ve metodun döndürdüğü sonucu “sayi” değişkenine atıyoruz. Peki bu “nextInt()” metodu ne yapar ve ne döndürür? Cevap oldukça basit: Program bu metodu gördüğünde o satırda durur ve kullanıcının klavyesinden bir tamsayı girmesini bekler. Ardından “nextInt()” metodu girilen bu tamsayıyı aynen döndürür. Program bu satıra geldiğinde ve kullanıcıdan veri girişi yapmayı beklediğinde, konsoldaki yanıp sönen beyaz “_” işareti olduğu yerde durup yanıp sönmeye devam eder. Bu safhada kullanıcı örneğin -4 girerse “sayi” değişkeni artık -4 sayısını depolamış olur. “scan” objesinin başka meşhur metodları ise “nextFloat()“, “nextDouble()“, “nextBoolean()“, “nextShort()“, “nextByte()“, “nextLong()“tır. Bunlardan isimlerinden anlaşılacağı üzere kendi türlerindeki değişkenleri döndürmeye yarar. Bir başka metod olan “scan.nextLine()” ise bir String, yani harflerden oluşan anlamlı ya da anlamsız bir cümle almaya yarar.

NOT: Dilersek “scan” değişkeninin ismini de değiştirebiliriz, mesela “klavye” yapabiliriz. Eğer böyle yaparsak bundan sonraki veri alma metodlarında “scan.nextInt() ” yazmak yerine “klavye.nextInt() ” yazmalıyız. Ancak bu konuda “scan” oldukça popüler ve yaygın bir kelime olduğundan daima onu kullanmanızı tavsiye ederim.

Programımızda en son “sayi” değişkeni için veri girişi almıştık. Şimdi bir adım ileri gidip aldığımız bu veriyi ekrana yazdıralım. Bunu yapmak da bebek oyuncağı. En son yazdığımız komuttan bir alt satıra ” System.out.println( sayi ); ” yazın. Bu kadar! Hemen şimdi yazdığımız “println“in haricindeki “print” ve “println” komutlarının hepsini silin ve programı çalıştırın. Program çalışır çalışmaz sizden veri girişi bekleyecektir. Mesela 6 girin. Sonuç şöyle olacaktır:

6

6

Gördüğünüz gibi ilk satırda veri olarak 6 girdik ve 2. satırda girdiğimiz bu sayı bize geri döndürüldü. Şimdi “println” metoduna geri dönelim. Eğer ekrana bir değişkenin değerini yazdırmak istiyorsak yapmamız gereken tek şey değişkenin ismini tırnak işaretleri olmadanprintln” metodunun içerisine yazmaktır. İstersek aynı anda hem bir yazıyı hem de bir değişkenin değerini de yazabiliriz. Mesela ” System.out.println( “Girilen sayi: ” + sayi ); ” komutu bize şunu döndürecekti:

6

Girilen sayi: 6

Yani tek yapmamız gereken yazı ile değişkenin arasına bir “ + ” (Artı işareti) koymaktır. Şimdi bir adım ileri gidelim. ” Scanner scan = new Scanner( System.in ); ” komutundan sonraki her şeyi silin ( ” } ” işaretlerine kadar, onlar hariç. ) ve yerine şunu yazın:

int yas;
String isim;
System.out.print( "Adiniz: " );
isim = scan.nextLine();
System.out.print( "Yasiniz: " );
yas = scan.nextInt();
System.out.println( "Merhaba " + isim + ", sen " + yas + " yasindasin!" );

Programın örnek bir çıktısı şöyle olacaktır:

Adiniz: Yasir Kula

Yasiniz: 18

Merhaba Yasir Kula, sen 18 yasindasin!

Gördüğünüz gibi “println()” metodunun içerisinde istediğimiz uzunlukta kombinasyon yapabiliriz. Unutmamamız gereken 2 şey değişkenleri tırnak işaretleri dışında yazmak ve aralara ” + ” işareti koymak.

Evet, bu ders bu kadar. Öğrendiklerinizi pekiştirmek için kullanıcıya adını, memleketini, doğum yılını, yaşını, en sevdiği evcil hayvanı soran ve bunları veri olarak alıp her birini tek tek farklı değişkenlere atayan, en sonda da sırasıyla ismini ve doğum yılını bir satırda, memleketini ve yaşını sonraki satırda, en sevdiği evcil hayvanı bir sonraki satırda ekrana çıktı olarak veren bir program yazın.

Bir sonraki derste görüşmek üzere, hoşçakalın!

yorum
  1. Udeh dedi ki:

    Teşekkürler.. Faydalı bir bilgi..

  2. nesr dedi ki:

    alt alta bş kere “yasir” nasıl yazarız?

  3. Selamlar. scanner ile karşı tarafın ismini yazdırdıktan sonra kaç karakter girdiğini gösteren bir program yapmam lazım ama nasıl yapılacağını tam anlamadım.

    System.out.println (” İsim ve soyisminizi yazınız”);
    isim=scanner.nextline();
    diye başladığımız yolda girilecek olan karakter sayısını göstermek için nasıl bir yol izlemem lazım? Teşekkür ederim.

  4. talat dedi ki:

    hocam bir sorum olacaktı print json.dumps(getQuotes(‘GOOG’)[0][‘LastTradeWithCurrency’])
    bu komuta şu şekilde “965.59” bir cıktı alıyorum acaba tırnak işaretini nasıl atarım gogledan burayı buldum tek teşekürler

  5. selcukoglu dedi ki:

    1 den 10 a kadar rakam girecem bir rakam çıkacak diziden hangi sayının çıktığını ekrana yazdıracam nasıl yapabilirim

    • yasirkula dedi ki:

      Şuna benzer bir kod mu arıyorsunuz acaba:

      int sayi = scan.nextInt(); // kullanıcıdan bir sayı al
      System.out.println( dizi[sayi] ); // dizinin o index'teki elemanını ekrana yazdır
      

      Eğer diziden o index’teki elemanın silinmesini istiyorsanız o zaman sona şu kodu da eklemeniz lazım:

      for( int i = sayi + 1; i < dizi.length; i++ )
      {
      	dizi[i - 1] = dizi[i]; // dizideki elemanları 1 sola kaydır
      }
      

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s