switch macht nicht das was es soll

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

  • switch macht nicht das was es soll

    Hallo, ich werde echt gleich irre....

    mein script db_Namen() :

    switch (global.name1_int)
    {
    case 1: global.name1 = "Lea"
    case 2: global.name1 = "Anna"
    case 3: global.name1 = "Lina"
    case 4: global.name1 = "Lisa"
    case 5: global.name1 = "Mona"
    case 6: global.name1 = "Mama"
    case 7: global.name1 = "Test"; break;

    }


    im create sytem object:


    randomize()

    global.name1_int = irandom_range(1,7)

    db_Namen()




    er zeigt immer "Test" an, obwohl das doch random ist????????
  • Du hast vergessen am Schluss das break bei allen case zu setzten.

    GML-Quellcode

    1. switch (global.name1_int)
    2. {
    3. case 1: global.name1 = "Lea"; break;
    4. case 2: global.name1 = "Anna"; break;
    5. case 3: global.name1 = "Lina"; break;
    6. case 4: global.name1 = "Lisa"; break;
    7. case 5: global.name1 = "Mona"; break;
    8. case 6: global.name1 = "Mama"; break;
    9. case 7: global.name1 = "Test"; break;
    10. }


    Hoffe es klappt jetzt ;)
    huhu
  • du benutzt das switch statement auch falsch...

    farbe =blau;
    farbe =grün;
    farbe=rot;


    ich erklärs mal switch(farben ){ //hier sagst du welche VARIABLE abgefragt werden soll in dem beispiel nehmen wir farben
    case blau: werde blau; //das case kannst dir so vorstellen wie if also if(wenn) blau : (das doppelpunkt ist wie die klammern { })
    break; und dann musst du es mit break beenden damit
    case grün:werde grün;
    case rot:werde rot; //Denn wenn du das break weg lässt wie jetzt hier wird deine figur erst grün und dann rot...
    break;
    }


    @Brodi warst schneller :D
    Wir stehen zusammen und wir fallen zusammen
  • Das break bricht, wie der Name sagt, das Statement ab. Ansonsten werden die anderen cases übersprungen und der ganze Code ausgeführt, der unter dem Case stehen, welches die Bedingung erfüllt hatte.
    Das kann man sich zB. für die GroßKlein-Schreibung zu Nutze machen (auch wenn ich da ein anderes System vorziehe):

    GML-Quellcode

    1. //Abfrage = j/n
    2. ​switch(abfrage){
    3. case "j":
    4. case "J":
    5. show_message("Wurde mit Ja bestätigt");
    6. break;
    7. case "n":
    8. case "N":
    9. show_message("Wurde mit Nein bestätigt");
    10. break;


    Switch-Case ist eigentlich ganz cool, nur hier könnte man die Funktion choose verwenden, oder sonst auch ein Array benutzen.
    Möglichkeit mit choose:

    GML-Quellcode

    1. ​global.name1 = choose("Name1","Name2","keinBockAlleNamenZuKopieren","Name4","...");
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe