Valid XHTML 1.0! Valid CSS!

Kullanıcı Girdisi Yapmak

Kullanıcıyı selamlayan bir program yazalım. Kullanıcıya adınız sorcağız ve ardından  'hello' diyeceğiz.gets yöntemi ile dizge olarak kullanıcı girdisi alınır.

Bunu kaydedip çalıştırın:

Ne oldu? Niçin bir sonraki satıra gitti?

Bir sonraki satıra gitti çünkü yeni-satır karakteri girdiniz. Yeni satır karakteri de bastığınız Enter tuşudur.

irb 'yi çalıştırın ve gets satırını yazın. Bilgisayar isim için beklerken  giriş yapın ve daha sonra neler olacağına dikkatle bakın:

Dizgenin sonundaki "\n" karakteri de nedir?

"\n" burada yeni-satır karakteri simgeler. Bu karakter siz klavyeden  Enter tuşuna bastığınızda yollanır.

İpucu: irb'yi kullanıp neler olduğunu nasıl incelediğimize dikkat edin. Programın sizin istediğiniz şekilde gitmediği durumlarda irb. kullanmak iyi bir çözüm yolu olabilir.

Sinir Bozucu Yeni Satır!

Pekala, biz sorunun ne olduğunu biliyoruz. Peki  bu sinir bozucu yeni satırdan nasıl kurtulacağız?

Ruby dizgleeri bu gibi durumlar için  String#chomp yöntemi ile birlikte gelir.irb 'ye geri dönelim ve uygulama içerisinde görelim.

Güzel!String#chomp yöntemi size dizgeyi yeni satır olmadan geri verdi. 

name değişkeninin hala yeni satırı içerdiğine dikkat edin.still contains the new-line. chomped_name değişkeni ise biizn istediğimiz kısımdır. Fakat neden hala diğer değişken de ekranda görünüyor? Düzenlemek için şu yol kullanılır:

>> name = name.chomp

Artık name değişkeninden yeni satır ayrılmış oldu.

Programımıza Geri Dönelim

Artık programımıza geri dönebilir ve hatayı düzeltebiliriz.

Burada Ruby hakkında düzenli bir açıklama var:

  1. chomp dizge yöntemidir(String#chomp).
  2. gets bir dizge ile döner.

Bundan dolayı,gets.chomp komutunu kullanarak String#chomp yöntemi ile gets komutundan geri dönecek olan dizgeyi ayırmak mümkündür. Diğer bir değişle şu şekilde yazılabilir:

Bu güzel olmadı mı? Bu kodları yazıp çalıştırın:

Alıştırmalar

  1. İki kelime alıp bunları ters sırada ekrana aktaran bir program yazın.

  2. Aşağıdaki gibi çıktısı olan bir program yazınız:

    Kullanıcının doğum tarihini şuanki tarihten yaşını çıkararak bulabilirsiniz. Bunları yaparken  String#to_i yöntemini hatırlayın.

  3. Bir cümle ve sayı soran program yazın, bu program girdiğiniz cümleyi ters olarak sayı kadar yinelemeli ekrana yazsın. Aşağıdakine benzer çıktı almalısınız:

    Bu programı yapmanın birden fazla yolu var, istediğiniz birini kullanın.

  4. Bu satırın ne yapacağını düşünüyorsunuz?:

    number  = gets.chomp.to_i

    irb kullanarak deneyin.

  5. Sayıyı kullanıcının girmesini gerektiren bir faktöriyel programı yazınız. Bu program aşağıdaki gibi çalışmalıdır: