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

Matematik Dünyası Dergisi

FZ

Prof. Dr. Ali Nesin yönetiminde çıkmaya başlayan Matematik Dünyası dergisi dolu dolu içeriği ile karşınızda.

Kapak konusu "Fonksiyonlar" olarak seçilmiş son sayıda, bunun yanı sıra, aramızdan ayrılan matematikçiler, topoloji köşesi, Fibonacci sayıları, bilgisayar bilimi köşesi (robotik ve diğer ilginç konular), geometri köşesi, paradoks ve satranç köşeleri gibi birçok başka bölüm de var.

Başka Bir Programcının Kitaplığı

FZ

FM üyelerinden Ragnor, bir programcının kitaplığı nasıl olmalı? başlığı altında bir haber yapmıştı daha önce.

Bu da başka bir programcının lezzetli kütüphanesi.

İş İstasyonu Olarak Debian ve Windowmaker

GaripFakir

Linux'un masaüstünde kullanımı ile ilgili genelde Gnome ve KDE masaüstü yöneticileri ön plana çıkmaktadır. Masa üstünde Linux dağıtımı olarak Mandrake ve Suse en çok adı geçen dağıtımlar arasında. Debian Linux dağıtımı ve Windowmaker pencere yönetici kullanılarak neler yapılabileceğini gösteren bir siteye rastladım.
Site, Gürkan Şengün tarafindan hazırlanmış ve Fatih Yılmaz tarafından Türkçe'ye çevrilmiş güzel bir kılavuz niteliğinde.
www.linuks.mine.nu/workstation/index.tr.html

Python 101: Eğlenceli bir programlama diline genel bir bakış

FZ

FM üyelerinden tongucyumruk'un yazdığı Eğlenceli bir programlama dili: Python başlıklı belgeyi FM camiası ile paylaşıyoruz.

Hazır 2.4 sürümü çıkmış iken meraklısı için iyi bir başlangıç olur diye düşündük.

Not:Bu belge LATEX belge hazırlama sistemi ile hazırlanmıştır. LaTeX ile üretilen PDF ve sıkıştırılmış PostScript belgelerini de kağıda kaliteli çıktı almak için kullanabilirsiniz.

Phishing Rehberi - Sivrizeka Para Tırtıklama Yöntemleri ve Korunma Şekilleri

FZ

Phishing, günümüzde yaygın olarak kullanılan bir saldırı yöntemidir. Görsel ve yazılı basında son zamanlarda online dolandırıcılık adı altında sık sık haberler duymaktayız. Phishing yönteminde temel kullanıcıyı kandırarak, kullanıcıya ilişkin kredi kartı bilgileri, banka hesap numaralarından bu hesaba ait internet şifresine kadar birçok özel bilgileri ele geçirmektir.

Kullanılan yöntemlerin başında e-posta ile gönderilen sahte mesajlar gelmektedir. Bu e-posta sanki bir ticari kurumdan(bankalar, alışveriş siteleri vb.) geliyormuş gibi bir izlenim yaratır. Bu, kullanıcının kendisine ilişkin bilgilerini girmesi için kuruma ait bağlantıya(link) tıklamasını içeren bir e-posta olabilir. E-posta içeriği kişisel bilgilerin güncellenmesi, sistemdeki yeniliklerin hesabınızda aktif olması için şifrenizi girin gibi mesajlardır.

Bunu gören kullanıcı e-posta ile gelen mesajdaki bağlantıya tıkladığında kurumun web sitesinin birebir kopyası olan başka bir sayfaya yönlendirilir. Burada girilen şifre gibi özel bilgiler artık başkasının eline geçer.

Tacettin Karadeniz'in FM camiası ile paylaştığı yazısının devamını burada okuyabilirsiniz.