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

Ağ Güvenliği İpuçları

honal

O'Reilly Yayınevinin "Network Security Hacks" adlı kitabı Açık Akademi Yayınlari tarafından Türkçeye "Ağ Güvenliği İpuçlari" olarak tercüme edilmistir.

"Ag Güvenligi İpuçları" kitabi sisteminizi basit bir hedef olmaktan çıkaracak 100 güçlü ve kullanışlı ipucu sunmaktadır. Bunlar, gerçek dünyada kullanilan araçlardan alınmış örnekler ve güvenlik uzmanlarının kendi bilgisayar ve ağlarını korumak için kullandığı yöntemlerden oluşmaktadır. Herbir ipucunu okumak yalnızca birkaç dakika sürerken sizi saatlerce araştırma yapmaktan kurtaracaktır.

e-Bergi Ekim 2008 Sayısı Çıktı!

anonim

Ekim ayında da, doyurucu içeriği ve ilgi gören programlama sorusu ile e-bergi sizlerle.

Fazla mesai süründürür!

ErdemDemir

Geçen gün kitaplığımı düzenlerken, 10 yıl kadar önce okumuş olduğum Paul Lafargue'ın yazdığı "Tembellik Hakkı" kitabını yeniden okuma şansı buldum. Bir defa daha ezberimi bozan bu kitabı fazlamesai (!) camiasıyla paylaşmak istedim.

Paul Lafargue İnternet Arşivi

"Tembellik Hakkı"

Ve alıntılar, sadece fikir verebilmek için...

Türkiye Bilişim Ansiklopedisi

FZ

Editörlüğünü Prof. Dr. Tuncer Ören, Tuncer Üney ve Dr. Rifat Çölkesen'in üstlenmiş oldukları Türkiye Bilişim Ansiklopedisi yayınlandı.

1248 sayfalık ansiklopedide bilgisayar bilimleri, bilgisayar mühendisliği gibi alanlardaki öğretim görevlilerinden telekomünikasyon, yazılım ve donanım şirketlerinde çalışan mühendislere kadar pek çok deneyimli yazar geniş bir yelpazede teknik konuları derinlemesine ele alıyor. Hesaplamaya dayalı geometriden genetik algoritmalara, konuşma ve ses sıkıştırma sistemlerinden örüntü tanımaya dek pek çok konunun alandaki yetkin isimler tarafından ele alındığı ansiklopedinin dikkat çekici özelliklerinden biri de Türkçe terim konusundaki hassasiyeti.

LINUXnet 4. Sayı Çıktı

anonim

LINUXnet'in 114 sayfalık 4. sayısını, tam sürüm Fedora Core 4 dağıtımı ve LINUXnet Özel CD'sinden oluşan 5 CD'lik özel setiyle beraber bayilerden edinebilirsiniz.

İçerik hakkında daha detaylı bilgiyi www.linuxnet.com.tr adresinden edinebilirsiniz.