If/else programm-ablauf

  • Allgemein

  • gold_digger
  • 917 Aufrufe 2 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • If/else programm-ablauf

    Ich habe eine ganz allgemeine Frage zum Programm Ablauf wenn if oder else eine funktion aufruft, die erst weiter unten im code steht:

    Quellcode

    1. if (x)
    2. a()
    3. elseif (y)
    4. b()
    5. else (z)
    6. c()
    7. print q
    8. a()
    9. ...
    10. b()
    11. ...
    12. c()
    13. ...
    14. print w
    Alles anzeigen




    So nehmen wir mal an y trifft zu, nun ist meine Frage: welche Funktionen werden ausgeführt?
    1. wird nur b ausgeführt und dann ist Schluss?
    2. wird b ausgeführt und dann einfach der komplette Code der folgt (kein print q, aber c() und print w)?
    3. oder wird b ausgeführt, und der folgende code außer c, weil sich das das programm gemerkt hat, dass z nicht zutrifft?

    und wie ist das wenn x oder z eintritt?

    normalerweise schreibt man ja die funktion gleich bei if oder else rein und nicht erst später, aber so habe ich das mal gesehen und bin nun verwirrt was eintrifft.

    Oder ist das vielleicht von Sprache zu Sprache unterschiedlich?

    Bitte um deutliche erläuterung, habe keine programmierkenntnisse, Danke!:)

    mfg gold_digger
    There are 10 kind of people: Those who understand binary code, and those who don't.
  • Nunja, a(), b() und c() sind Funktionen.
    Das heisst, du rufst sie auf, der Code der Funktion wird ausgeführt und anschliessend wird zum Ort, woher die Funktion aufgerufen worden ist, zurückgesprungen.
    Falls also y eintrifft, wird b() ausgeführt, zurückgesprungen, falls z auch eintrifft, wird auch noch c() ausgeführt, zurückgesprungen, dann werden print q und print w ausgeführt. a(), b() und c() zwischen print q und print w werden nicht ausgeführt, da diese Funktionsdeklarationen sind und keine Funktionsaufrufe! In den meisten (besser: mir bekannten Programmierssprachen) müsste dein Programm aber so aussehen:

    Quellcode

    1. main{ //Hauptprogramm (von hier aus werden spezielle Funktionen aufgerufen)
    2. if (x)
    3. a() //Funktionsaufruf!
    4. elseif (y)
    5. b()
    6. else (z)
    7. c()
    8. print q
    9. ...
    10. ...
    11. print w
    12. return
    13. }
    14. a(){ //Funktionsdeklaration!
    15. ...
    16. return // Verursacht das zurückkehren zum Aufrufer
    17. }
    18. b(){
    19. ...
    20. return
    21. }
    22. c(){
    23. ...
    24. return
    25. }
    Alles anzeigen


    Ich hoffe ich konnte zur Klärung beitragen, ansonsten einfach nachfragen!
    mfg Elefant1990
  • Ja Danke, hast alles sehr gut erklärt und ich konnte es verstehen. also ich glaube das war perl und es waren in den 3 deklarierten funktionen eigentlich noch close oder eof, dann ist klar dass oben entschieden wird was eintrifft und dann nur die eine funktion aufgerufen wird. bloß dann habe ich gegrübelt was passiert wenn die funktionen nicht geclosed werden. aber dann macht das mit dem return ja auch sinn.
    There are 10 kind of people: Those who understand binary code, and those who don't.