SA-MP Forums Archive
Returning inside a switch case, does it go back to the scope of the function, or does it return for the function? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Returning inside a switch case, does it go back to the scope of the function, or does it return for the function? (/showthread.php?tid=446503)



Returning inside a switch case, does it go back to the scope of the function, or does it return for the function? - Hoborific - 26.06.2013

pawn Code:
forward Example(example);
public Example(example)
{
    switch(example)
    {
        case 0:{// stuff}
        case 1:{// stuff}
        case 3:{return 1;}
    }
   
}
Now I understand they are not like C where I have to break them to stop them from calling each other, but if I called Example(3); would that return 1 to the Example function, or to where I called it?


Re: Returning inside a switch case, does it go back to the scope of the function, or does it return for the function? - iJumbo - 26.06.2013

Why don't try it?

pawn Code:
forward Example(example);
public Example(example)
{
    switch(example)
    {
        case 0:{// stuff}
        case 1:{// stuff}
        case 3:{return 1;}
    }
    return 3;
}
See if in case 3 return 1

or do something like

pawn Code:
forward Example(example);
public Example(example)
{
    new what = 0;
    switch(example)
    {
        case 0:{// stuff}
        case 1:{// stuff}
        case 3:{what = 1;}
    }
    return what;
}
Just debug yourself


Re: Returning inside a switch case, does it go back to the scope of the function, or does it return for the function? - MP2 - 26.06.2013

If you return ANYWHERE in a function, the function stops and returns the value. Scope doesn't matter.


Re: Returning inside a switch case, does it go back to the scope of the function, or does it return for the function? - Hoborific - 26.06.2013

I'm calling the function inside an if statement, if that's what you were asking(if(example(variable) == 1), I kind of knew what returns did, I've been using them obviously, but I wasn't sure how the scope of the return worked, if it went back a layer or if it simply did the equivalent of a break.