C++ için goto kullanımı

0
anonim
Eskiden beri goto terimi ile programcıların arasında ne olduğunu merak ederim. Hemen her kitapta goto teriminden neredeyse bir küfürmüş gibi bahsedilir ama yinede kullanımı anlatılır. Sonunda merakımı gideren cevabı Bruce Eckel'in Thinking in C++ kitabında buldum. Bu kitabın goto kullanımı ile ilgili kısmını aşağıda bulabilirsiniz.
"Goto kullanımı çoğu zaman kötü programcılıkla karıştırılır ki; çoğu zaman da öyledir aslında. Her goto kullandığınızda koda bir daha bakın, başka bir yol olmadığından emin olmak için. Ancak bazı ender durumlarda bir sorunun ancak goto ile çözüldüğünü görebilirsiniz, ama yine de dikkatli olun. İşte bir örnek:
//: C03:gotoKeyword.cpp
// The infamous goto is supported in C++
#include <iostream>
using namespace std;

int main() {
  long val = 0;
  for(int i = 1; i < 1000; i++) {
    for(int j = 1; j < 100; j += 10) {
      val = i * j;
      if(val > 47000)
        goto bottom; 
        // Break would only go to the outer 'for'
    }
  }
  bottom: // A label
  cout << val < endl;
} ///:~


Bir alternatif olarak dışardaki döngüyü test etmek için bir boolean yerleştirilebilir, ve iç döngüyede bir break konulabilir. Ama, eğer daha fazla for ve while döngülerimiz olsaydı içiçe bu iyi bir çözüm olmaktan çıkardı."

Görüşler

0
malkocoglu_2
||Bir alternatif olarak dışardaki döngüyü test
||etmek için bir boolean yerleştirilebilir

.. ya da, goto yerine, dongunun gereken kismini bir islev icine koyup, return kullanarak icice donguden cikabilirsiniz.

Goto'nun zararlari, eski ustalardan Djikstra tarafindan cok ünlü bir makalesinde beyan edilmisti.

Go To Statement Considered Harmful
http://www.acm.org/classics/oct95/

Iyi calismalar,

0
mentat

int main() {
long val = 0;
try{
for(int i = 1; i 47000)
throw benimciciexception();
}
}
catch(benimcicexception ex)
{
cout
exception mekanizmasini kullanmaya hic alisik degilim ama goto'dan hala bin kat daha iyidir. ya da degildir.. goto'yu sevmeyenlerdenim, derleyiciler de sevmezler ayrica. bulasmamakta fayda var..
0
mentat
forumda bi bozukluk var, bu benim yazdigim kod diil! bes alti kere post etmeye cabaladim, sistem php falan kasildi hata verdi, ustune blockquote icine koydum ama yarisini yedi mesajin..

kisaca forlarin basina bir try, goto yerine throw, label yerine de catch ekledim, exception handling iste..
0
mentat
off amaaan, kucuktur buyuktur isareti nanesi.
0
FZ
lt kullanin, gt kullanin ve de PRE html tag´ini kullanin ;-) dünya daha güzel bir yer olsun, sac bas yolmayin
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Plazma: Amatör Bilgisayar Kültürü Dergisi

Alcofribas

Herkese merhaba, Uzun bir aradan sonra, "Amatör Bilgisayar Kültürü" dergisi Plazma, dördüncü sayısıyla tekrar karşınızda. Hemen gidip Plazma sayfasından yeni sayıyı (tabii ki ücretsiz olarak) indirebilirsiniz. Bilgisayar ile ilgili amatör hobilerin tamamını, klasik ve modern bütün platformlarda, adım adım kapsama alanına almaya çalışan derginiz, yeni ve eski pekçok yazardan, pekçok kaliteli yazıyla dolu dolu huzurunuza geliyor. Sonraki sayı çıkana kadar dergiyi okuyup bitiremeyebilirsiniz bile ;)

GNU/Linux dergisi Penguence'nin 2. sayısı çıkıyor...

FZ

Daha önce yine FM'de duyurduğumuz Penguence dergisinin ikinci sayısı (beta) yayınlandı. Dergiye web tarayıcı ile erişmek mümkün. Henüz PDF hali tam hazırlanmamış olmakla birlikte çalışmaları devam ediyor.

Bu sayıdaki konu başlıklarından bir kaçı:

  • OpenOffice.org 2.0'a doğru - Rıdvan Can
  • Ses ve Müzik - Bülent Bolat
  • Aynı dili konuşuyor muyuz? - Yasin Kokarca
  • Açık Anahtarlı Kriptografi - A. Murat Eren
  • Kitap Eleştirisi : Hackers - Sıradışı Bir Dönemin Sıradışı Hikayesi - Ergin Sevinç
  • Oyun Köşesi : Pathological - Doruk Fisek
  • Çekirdek Derlemekten Korkmayın - Murat Koç
  • Kablosuz LAN Protokolleri - Mustafa Şahin
  • Debian Sosyal Sözleşmesi (Çeviri) - Debian Türk Grubu

Türkiye´nin İlk FreeBSD İşletim Sistemi Kitabı Çıktı

honal

Türkiye'nin ilk FreeBSD İşletim Sistemi kitabı çıktı. Son yıllarda gittikçe artan bir ilgi ile karşılaşan FreeBSD hakkında hemen herşeyi bu kitapta bulabileceksiniz.

FreeBSD işletim sistemine olan ilgi son yıllarda oldukça artmıştır. Köklü bir işletim sistemi olmasına rağmen son yıllara kadar tanınmayan BSD ailesi, kararlı ve güvenli işletim sistemi sunmaktadır. Uzun yıllar FreeBSD üzerine yoğunlaşmış uzman bir yazar kadrosu tarafından yazılan kitap, Türkiye'nin ilk ve tek FreeBSD işletim sistemi kitabıdır. Kitap, FreeBSD'yi Türkiye'ye tanıtmak misyonunu üstlenmiştir. Bu nedenle kullanıcıların kurup deneyebilecekleri bir adet FreeBSD 4.9 CD'si ile birlikte gelmektedir.

Ayrıntılı bilgi için: Açıkkod Yayınevi

Güle Güle Arthur C. Clarke

tongucyumruk

Başta 2001: Bir uzay efsanesi ve Rama serisi gibi klasikler olmak üzere birçok bilim kurgu kitabının yazarı, iletişim uyduları teknolojisinin fikir babası Sir Arthur C. Clarke, bugün, Sri Lanka'da hayatını kaybetti.

Aslında o ölmedi, yıldız çocuk oldu sadece...

Qooxdoo JavaScript / AJAX Framework İle Merhaba Dünya'dan Biraz Öteye

muhuk

Aşağıdaki eğitsel burada yayınlanan (İngilizce) aslından çeviridir. Gerek benim yeteneksizliğim gerekse Türkçe'nin bilişim terimleri konusunda zayıf olması sebebiyle kötü bir çeviri olmuştur. Çeviri için özür diliyor ve mümkünse aslını okumanızı rica ediyorum.

Qooxdoo özellikle masaüstü benzeri GKA'lar yaratmakta kuvvetli bir AJAX çatısı. Tkinter veya GTK gibi, ama daha çok swing'e benziyor. İyi hazırlanmış belgeler ve temiz bir API ile geliyor. Yapılandırma ve ilklendirme için küçük bir Python programı var. Çok geniş bir kütüphaneye sahip olduğu için geliştirme sürecinde kısmen derlenmiş kaynak üzerinde çalışıp, bitirdiğinizde yine bu programı kullanıp tek (aslında iki, bir de yükleyici oluşturuyor), az yer kaplayan bir dosya oluşturabilirsiniz.