Ruby Loop Döngüsü
Ruby dilinde bir çok döngü çeşidi mevcuttur. Bu yazıda bahsedeceğim döngülerden biri olan loop döngüsünü size örnekle açıklayayım.
Loop döngüsü herhangi bir koşul almaksızın döngüyü siz bitirmediğiniz sürece sürekli aynı işlemi tekrarlamasına olanak sağlar. Yani sonsuz bir döngü oluşturur.
Bir kullanıcı giriş sayfasında kullanıcıya doğru şifreyi girene kadar aynı işlemi tekrarlatmak istiyorsak bunu döngü içerisinde yapabiliriz.
#encoding: UTF-8 loop{ print "Kullanıcı adını girin: " gets().chomp() != 'enes' ? redo : true print "Şifrenizi Girin: " break if gets.chomp == '123456' } puts "Hoş Geldiniz.."
Kullanıcı adını girin: Enes Kullanıcı adını girin: enes Şifrenizi Girin: 123 Kullanıcı adını girin: enes Şifrenizi Girin: 123456 Hoş Geldiniz..
Kodumuzu incelediğimizde loop{} ile diğer bloklardan farklı olarak bir döngü oluşturduk.
gets().chomp() != 'enes' ? redo : true
Bu satırda ise kullanıcıdan bir veri girişi yapmasını istedik, gelen veride yer alan yeni satır karakterini sildik. Gelen değeri if else yapısına soktuk. “İf else yapısı nerede ?” diye soracak olursanız “gets().chomp() != ‘enes'” if’in başlangıcı yani şartı oluyor, ” ? redo ” if şartının gerçekleşmesi durumunda uygulanacak kod, ” : true ” ise else durumunda yani şartın false dönmesi halinde uygulanacak satır. Burada ilk denememizde “Enes” değerini verdiğim için ve şart sağlandığı için redo metodu çalıştırıldı. Bu metot loop’u başa sarıyor ve tekrar aynı işlemleri yapmasını istemiş oluyoruz. İkinci denememde kullanıcı ismini doğru girdikten sonra şifre bölümünü yanlış girdim ve break şartını gerçekleştiremedim için break metodum çalışmadı.
Son denemem de tüm koşulları yerine getirdiğim için loop’dan break metodu ile çıktım ve programın akışı devam etti.