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

Kitap Eleştirisi: Adım Adım LaTeX

FZ

Biz bilgisayarcılar için genellikle pek kaynak sıkıntısı yoktur, hemen hemen her türlü konuda diğer bilgisayarcılardan, USENET'ten, Google'dan, vs. kolayca bilgi edinebilir ve bunları pratik olarak uygulayabiliriz. Bununla birlikte bir konuya yeni başlayan birine derli toplu, sistematik olarak konuyu anlatan bir kitabın değeri ve pedagojik önemi tartışılmaz.

Adım Adım LATEX isimli kitap da yukarıdaki sebeplerden ötürü LaTeX konusunda önemli bir boşluğu dolduran belki de ilk ve tek Türkçe kaynak. Prof. Dr. Abdugafur Rahimov ve Orhan Kesemen tarafından yazılmış ve 2004 yılında kitabevlerinde satışa sunulmuş Adım Adım LaTeX kitabı, LaTeX isimli kaliteli belge oluşturma sistemine dair gerekli hemen hemen tüm bilgileri içeriyor. Kitabın ve LaTeX'in sadece matematikçilere ya da bilgisayarcılara hitap ettiğini düşünenler varsa, bu önyargılarını şimdiden silmelerinde fayda var. Psikolojiden, felsefeye, işletmeden hukuğa kadar, herhangi bir konuda ödev yazan, makale hazırlaması gereken ya da profesyonel görünümlü bitirme ödevi, yüksek lisans tezi, doktora tezi, kitap vs. yazmak isteyenlere bu kitabı rahatlıkla önerebilirim başucu kaynağı olarak.

Erciyes Üniversitesi Linux Topluluğu GNU/Linux Dergisi Çıkardı

anonim

Bilişim Kulübü altında faaliyet gösteren Erciyes Üniversitesi Linux Topluluğu (EULT) 2007 yılında kuruldu. Açık kaynak kodlu yazılıma katkıda bulunmak, GNU/Linux'a yeni başlayanlara rehberlik etmek amacıyla yola çıkan topluluk 2008 Ocak ayı itibarı ile e-dergisinin ilk sayısını yayınladı.

Dergiye http://universitem.erciyes.edu.tr/eult_e_dergi_1.pdf adresinden ulaşabilirsiniz.

E-Lapis Dergisinin 3. Sayısı Çıktı

Sabutay

Çesitli sebeplerden dolayı E-Lapis dergisinin 3. sayısının çıkış tarihi ertelenmişti. Fakat sonuçta güzel bir şeyler çıkarttığımıza inanıyor ve e-lapis dergisinin 3. sayısını http://www.e-lapis.org adresinden indirebileceğinizi duyurmak istiyoruz. Dergimizin yeni sayısı farklı konulardan ve zevkle okuyacağınız dolu dolu sayfalardan oluşuyor.

Ruby Kullanıcı Kılavuzu Artık Türkçe

anonim

Ve en sonunda Ruby ile ilgili Türkçe bir başlangıç belgesi bulunuyor. Orjinali Ruby'nin yaratıcısı Yukihiro Matsumoto ( a.k.a Matz ) tarafından yazılan belge Pınar Yanardağ tarafından Türkçe'ye kazandırıldı. Bu belgenin yeni başlayacak tüm Ruby meraklılarının eğlencelerine katkısı olacağına inanıyor, ayrıca bir ilki gerçekleştirmesinden dolayı Pınar Hanımı tebrik etmek istiyorum. Herkese mutlu kodlar dilerim...

Matematik Dünyası Yaz 2003 Sayısı Çıktı!

FZ

Dolu dolu 112 sayfa olarak çıkan son sayı tüm matematik ve bilgisayar bilimi meraklılarının ilgisini çekecek türden.

İstanbul Bilgi Üniversitesi öğretim görevlisi Prof. Dr. Ali Nesin, derginin bu son sayısının tanıtımı için şunları yazıyor:

Matematik Dünyası dergisinin 2003 Yaz sayısı çıktı. Matematik dolu 112 sayfa... İçeriğini aşağıda bulacaksınız. Biçimiyle, biçemiyle, diliyle, içeriğiyle, derinliğiyle, her şeyiyle çok heyecanlı bir dergi oldu. Fiyatı 4 milyon. Abonelik 15 milyon. Toplu abonelikler 10 milyon. Geçen sayı 5 bin sattı. Bu sayının satışının 7 bin olacağını umuyoruz. Matematik Dünyası öncelikle gençlere yöneliktir, ama matematiğin evrenselliği sayesinde profesyonel matematikçilerin de büyük keyifle okuduğu bir dergi oldu.