heya STING! /goto is usually the alternative proposed, the usual method being a string of if statements. though it doesn't serve as a general purpose example without some further consideration, there are are other ways to take advantage of some of /goto's features:
if ($istok(1 2 3, $1, 32)) goto $1
if ($1 != $null) {
echo -a default!
halt
}
echo -a null!
halt
:1
echo -a 1!
halt
:2
echo -a 2!
halt
:3
echo -a 3!
halt
the first line, the $istok() check, is just to ensure that $1 exists in your set of selections, otherwise you'd get an error saying the label you want to goto doesn't exist. now, you can perform a little trickery by coming up with a label corresponding to a value of $1 that you never expect to have and use the following:
var %goto = $1
goto $1 .
:1
echo -a 1!
halt
:2
echo -a 2!
halt
:3
echo -a 3!
halt
:.
echo -a null!
halt
:%goto
echo -a default!
halt
if $1 is $null then /goto %goto . becomes /goto .
if it isn't $null but isn't one of the valid selections, %goto serves as the default case
this isn't really an alternative as you requested, just something else to think about when using /goto