Difference between revisions of "Goto"

From Scriptwiki
Jump to: navigation, search
m
 
m
 
Line 2: Line 2:
 
  /goto <label>
 
  /goto <label>
 
'''Note:''' Using a goto incorrectly could lead to an infinite loop. You can break out of a currently running script by pressing Control+Break.
 
'''Note:''' Using a goto incorrectly could lead to an infinite loop. You can break out of a currently running script by pressing Control+Break.
 +
 +
You can also use a variable as a goto name, eg.
 +
:%jumppoint
 +
If %jumppoint were set to 5, /goto 5 would jump to that point in the script.
 
==Example==
 
==Example==
 
  /number {
 
  /number {
  if ($1 == 1) goto one
+
  [[if]] ($1 == 1) goto one
  elseif ($1 == 2) goto two
+
  [[elseif]] ($1 == 2) goto two
  else goto unknown
+
  [[else]] goto unknown
 
  :one
 
  :one
  echo One
+
  [[echo]] One
  halt
+
  [[halt]]
 
  :two
 
  :two
 
  echo Two  
 
  echo Two  
Line 18: Line 22:
 
  }
 
  }
 
In the above alias, if the first parameter were 1, it would jump to label ''one'', otherwise if it were 2 it would jump to label ''two''. If it is none of those, it will jump to the ''unknown'' label.
 
In the above alias, if the first parameter were 1, it would jump to label ''one'', otherwise if it were 2 it would jump to label ''two''. If it is none of those, it will jump to the ''unknown'' label.
 +
/randpoint {
 +
[[var]] %jump1 = 1, %jump2 = 2
 +
goto [[$r]](1,2)
 +
:%jump1
 +
echo Picked jump 1!
 +
halt
 +
:%jump2
 +
echo Picked jump 2!
 +
halt
 +
}
 +
The above alias is an example of using a variable as a point name. It will pick either point 1 or 2.
 
[[Category:Commands]]
 
[[Category:Commands]]

Latest revision as of 00:48, 7 April 2008

The /goto command allows you to jump from one point in a script to another point.

/goto <label>

Note: Using a goto incorrectly could lead to an infinite loop. You can break out of a currently running script by pressing Control+Break.

You can also use a variable as a goto name, eg.

:%jumppoint

If %jumppoint were set to 5, /goto 5 would jump to that point in the script.

Example

/number {
if ($1 == 1) goto one
elseif ($1 == 2) goto two
else goto unknown
:one
echo One
halt
:two
echo Two 
halt
:unknown
echo Unknown number!
halt
}

In the above alias, if the first parameter were 1, it would jump to label one, otherwise if it were 2 it would jump to label two. If it is none of those, it will jump to the unknown label.

/randpoint {
var %jump1 = 1, %jump2 = 2
goto $r(1,2)
:%jump1
echo Picked jump 1!
halt
:%jump2
echo Picked jump 2!
halt
}

The above alias is an example of using a variable as a point name. It will pick either point 1 or 2.