Und es gibt sie doch! If-Schleifen, so wird es (nicht) gemacht

Wie fast überall, so auch in Entwicklerkreisen, gibt es Geheimnisse und Insiderwissen über das niemand sprechen will.

Hier und heute gibt es nun die Wahrheit über die If-Schleife.

Wie oft hat man schon von der berühmten If-Schleife gehört, deren Existenz von Softwareentwicklern immer wieder geleugt wird?

Gerade Anfänger im Geschäft sind oft noch neugierig und offen genug, um zu spüren, dass es da irgendwo noch mehr gibt. Mehr geben muss!

Und sie haben Recht, es gibt sie tatsächlich!

Die If-Schleife, in Fachkreisen auch If-Goto-Schleife genannt, ist ein komplexes Geschöpf.

Ihr Lebensraum findet sich in den dunklen tiefen derer Programmiersprachen, die auch dem gemeinen Goto ein Zuhause sind.

$i = 0;
loopbegin:
  echo $i . '<br/>';
  $i++;
if(i < 10) { goto loopbegin; }

Aufgrund ihrer Hässlichkeit wird sie zu Recht versteckt und verleugnet.

Warnung: Liebe Kinder, macht das bitte niemals (wirklich NIEMALS!) nach und spielt stattdessen nur mit den guten For- oder While-Schleifen.

Nachtrag: Ein paar Stunden, nachdem ich gestern diesen Artikel geschrieben habe, fand ich einen weiteren Artikel von David Müller auf phphatesme.com, in dem er sich ebenfalls, und erstaunlich ausführlich, mit dem Thema Goto beschäftigt hat.

Dabei zeigt er auch, dass Goto auch sinnvoll einsetzbar ist.

2 Kommentare

  1. Pingback: if erneut - php.de

  2. Exakt, heute erst im Informatik-Unterricht darüber aufgeregt.
    Die Leute sind dann auch immer beratungsresistent…

    In Java hasse ich do-while-Schleifen.

Schlagwörter: Adapter, Amazon, Animation, Annotations, Anonyme Klasse, Ant, Apache, API, Array, ArrayAccess, Attachment, AutoLoader, Bedienung, Bedingung, Benchmark, Bildbearbeitung, BOM, Bootstrap, Bot, Byte Order Mark, Callback, CamelCase, Canvas, Captcha, Cheatsheet, CLI, Closure, Cloud, CodeSniffer, Community, Comparator, Contest, Controller, Converter, CouchDB, Countable, Cronjob, CSV, CustomLibrary, Custom_Model, Data Mapper, Datei, Datenbank, Datenstruktur, Datentypen, Dating, Decorator, Dekorierer, Design Patterns, Dump, Duplikat, each, Eclipse, Entwicklung, Entwurfsmuster, Enum, Erweiterung, Eventhandling, Exception-Handling, Extension, Factory, Fehler, Flash, Foreach, Formatierung, Formular, Funktion, Futon, Header, HTML5, HTTP, IDE, If, Implementierung, InnoDB, Interceptor, Interface, isset, Iterator, Java, JavaScript, jQuery, Konfiguration, Konsole, Kontrollstruktur, kopieren, Late Static Binding, Layout, Linux, Listeners, Logging, Löschen, Magento, Magic Methods, Marketing, Methode, Model, MVC, MySQL, NetBeans, Objekt, Observable, Observer, OOP, Operator, Parameter, Partnersuche, Performance, PHP, phpMyAdmin, PHPUnit, Plugin, Proxy, Qualitätssicherung, Query, Reflection, Request, Response, Rest-API, Rockstar, Routing, S3, Samba, Scheifen, Schleife, Schutz, Secure Shell, Selbstreferenz, Shop, Sicherheit, Sicherung, Singleton Pattern, SOAP, Sortierung, Sourcecode, Spam, Speicherproblem, Spickzettel, SPL, SSH, Statement, Stellvertreter, Strategy Pattern, Stream, String, Sun VirtualBox, Support, Switch, Symfony, Symfony2, Symfony Live, Tag, Template, Template Method, Ternär Operator, Testing, Thumbnail, Tool, Tour, Twig, Type-Cast, Umwandlung, Underscore, unset, Vererbung, Verzweigung, Video, Videospiel, Virtualisierung, Visitor Pattern, Vorschaubild, walk, Webserver, Webservice, Weiterleitung, Wrapper, Youtube, Zeitsteuerung, Zend Framework, Zend_Cloud, Zend_CodeGenerator, Zend_Http_Client, Zend_Service, Zugriffsmethode