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. |
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.
Artık programımıza geri dönebilir ve hatayı düzeltebiliriz.
Burada Ruby hakkında düzenli bir açıklama var:
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:
İki kelime alıp bunları ters sırada ekrana aktaran bir program yazın.
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.
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.
Bu satırın ne yapacağını düşünüyorsunuz?:
number = gets.chomp.to_i
irb kullanarak deneyin.
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: