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

LIDS ile izinsiz girişlerin tespiti

FZ

LIDS (Linux Intrusion Detection System), sistemdeki önemli dosyaları koruyan ve tanımlanan kurallar çerçevesinde süreçleri(process) izleyen bir uygulamadır. Kendisine bir kural tanımlanır ve o kurala göre dosya/dizinleri korur. Örneğin, kendisine eklenen kurallara göre belirlenen süreçler kullanıcıların gözünden saklanabilir. Böylece ps komutunun sonucunda bu süreç, gözlerden saklandığı için ortaya çıkmayacaktır. LIDS bu tür işlemleri yapabilmesi için yazılımla birlikte sunulan kernel yama dosyasını kernele(çekirdek) yamamak gerekmektedir. Kural tanımlama(ekleme/çıkarma) işlemi yazılımın lidstools isimli araçları ile yapılabilmektedir.

Tacettin Karadeniz´in makalesinin devamına ileriseviye.org sitesinden erişebilirsiniz.

Xmame : Birkaç Romalı Dövelim Mi?

darkhunter

Xmame, zamanında Atari salonlarında harçlıklarımızı tükettiğimiz oyunları GNU/Linux'a taşıyan bir emülatör. Emülatörler ve Emülasyon hakında daha fazla bilgi almak için buraya bakabilirsiniz. Bu klavuz xmame'in Debian GNU/Linux altında kurulumunu ve çalıştırılmasını anlatmaktadır. Ek olarak günün stresini Romalı döverek atmak isteyenlere yol göstermektedir. ;-)

Kitap Eleştirisi: Süper Hesap Uzmanları

FZ

Makine öğrenmesi konusu ile ilgilendiğim için askere gitmeden önce Ian Ayres'in 'Süper Hesap Uzmanları : Sayılarla Düşünmek Neden Zeki Olmanın Yeni Bir Yoludur' kitabını okumuştum. 2008 yılının Mart ayında Türkçesi yayımlanmış kitabın makine öğrenmesi, veri madenciliği ve genel anlamda istatistiğin gücü ile ilgilenen herkesin okuması gereken türden bir kitap olduğuna inanıyorum. Yani işadamları da bilgisayar yazılımcıları da çözmeye çalıştıkları problemleri daha iyi anlamak ve daha akıllıca çözümler geliştirmek için bu kitaptan feyz alabilirler.

Her ne kadar söz konusu kitap (Freakonomics'in yazarlarıdan) Steven D. Levitt gibi yazarların övgüsüne nail olmuşsa da hem içerik hem de çeviri konusunda bazı eleştirileri hak ediyor. Kitabı okurken not ettiğim bazı noktaları aşağıda listeledim:

IT Sektöründe Profesyonel Olmak

anonim

Eğer Fazlamesai sitesini takip ediyorsanız hepinizin bir şekilde yolu IT sektöründen geçiyordur. IT sektöründe profesyonel olmak göründüğü kadar kolay değildir. Sadece ünvanınızın önüne '... Specialist' eklemek yetmiyor.

Apache güvenliği

conan

Bu yazıda Apache'nin dağıtımla gelen halinden daha güvenli bir şekilde çalışabilmesi için yapmanızı tavsiye edeceğim bazı değişiklerlerden bahsedeceğim. Bu tavsiyelerden birçoğu ayar dosyalarıyla ilgili olacağından dolayı Apache httpd.conf dosyası hakkında bilgi edinmiş olmanızı öneririm.