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 paylaşmanın eğlenceli yolu..

dasgin

"Amacımız, basit, tüm dünyayı kütüphaneye çevirmek."

"BookCrossing.com size kitaplarınızı dünyayla paylaşmak ve sonsuza kadar izlediği yolu takip edebilmek için basit bir yöntem sunuyor."

Okuduğunuz ve diğer insanlarla paylaşmak istediğiniz kitapları "www.bookcrossing.com" adresinden temin ettiğiniz bir kimlik numarası ile kayıt altına alıyorsunuz. Sonra mı?

Her Yönüyle PARDUS Kitabı Çıktı!

anonim

Pardus, Tübitak’ın desteği ile hayat bulan tamamen Türkçe bir GNU/Linux dağıtımıdır. Kullananların internet ortamında her türlü desteği bulduğu, kullanıcı dostu, ilk çıktığından bu yana bilgisayar kullanıcıları arasında hızla kullanılıp yaygınlaşan, ücretsiz bir işletim sistemidir. Bu kitapla, hiç GNU/Linux kullanmamış okuyucuları başlangıç seviyesinden alıp üst seviyelere getirmek amaç edinilmiştir

2008 Yılında E-Öğrenmeyi Şekillendirecek 9 Trend

FZ

Bill Brandon’ın Learning Solutions e-Magazine’de dün yayınlanan “Nine Trends That Will Shape e-Learning in 2008″ başlıklı makalesi bu sene e-öğrenim dünyasında etkili olacak yeni ve gelişmekte olan eğilimleri ele alıp önemli noktalara dikkat çekiyor [1].

3.38 YTL'lik çeklerden birisi bulundu

cbc

Karlı bir İstanbul sabahı butch ile Taksim'de buluşup Bilgi Üniversitesi, Dolapdere kampüsüne indiğimiz gibi koridorda ilginç bir kağıt parçası ile karşılaştık. Meraka ve söze mahal bırakmadan görüntüleri haberin devamına iliştiriyorum.

Ruby ile Ağ Programlama ve Web Servisleri

anonim

Mark Watson tarafından yazılan ve devx.com da yayımlanan bu makale Ruby ile ağ programlama ve web servislerine giriş niteliği taşıyor. En yaygın kullanılan 3 tip web servisinin (CGI, XML-RPC, SOAP) Ruby ile gerçekleştiriminin anlatıldığı bu makaleye buradan ulaşabilirsiniz.