<?xml version="1.0" encoding="UTF-8"?>


<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


	
<helpdocument version="1.0">
<meta>
<topic id="textsbasicshared03090301xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">GoSub...Return Statement [Runtime]</title>
<filename>/text/sbasic/shared/03090301.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2004-08-24T12:39:27">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<section id="gosubreturn">
<bookmark xml-lang="en-US" branch="index" id="bm_id3147242"><bookmark_value>GoSub...Return statement</bookmark_value>
</bookmark>
<paragraph role="heading" id="hd_id3147242" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/sbasic/shared/03090301.xhp" name="GoSub...Return Statement [Runtime]">GoSub...Return Statement [Runtime]</link></paragraph>
<paragraph role="paragraph" id="par_id3145316" xml-lang="en-US" l10n="U" oldref="2">Calls a subroutine that is indicated by a label from a subroutine or a function. The statements following the label are executed until the next Return statement. Afterwards, the program continues with the statement that follows the <emph>GoSub </emph>statement.</paragraph>
</section>
<paragraph role="heading" id="hd_id3145609" xml-lang="en-US" level="2" l10n="U" oldref="3">Syntax:</paragraph>
<paragraph role="paragraph" id="par_id3145069" xml-lang="en-US" l10n="U" oldref="4">see Parameters</paragraph>
<paragraph role="heading" id="hd_id3147265" xml-lang="en-US" level="2" l10n="U" oldref="5">Parameters:</paragraph>
<paragraph role="paragraph" id="par_id3148664" xml-lang="en-US" l10n="U" oldref="6">Sub/Function</paragraph>
<paragraph role="paragraph" id="par_id3150400" xml-lang="en-US" l10n="U" oldref="7">statement block</paragraph>
<paragraph role="paragraph" id="par_id3154140" xml-lang="en-US" l10n="U" oldref="8"> Label</paragraph>
<paragraph role="paragraph" id="par_id3150869" xml-lang="en-US" l10n="U" oldref="9">statement block</paragraph>
<paragraph role="paragraph" id="par_id3154909" xml-lang="en-US" l10n="U" oldref="10">GoSub Label</paragraph>
<paragraph role="paragraph" id="par_id3153969" xml-lang="en-US" l10n="U" oldref="11">Exit Sub/Function</paragraph>
<paragraph role="paragraph" id="par_id3154685" xml-lang="en-US" l10n="U" oldref="12">Label:</paragraph>
<paragraph role="paragraph" id="par_id3145786" xml-lang="en-US" l10n="U" oldref="13">statement block</paragraph>
<paragraph role="paragraph" id="par_id3159252" xml-lang="en-US" l10n="U" oldref="14">Return</paragraph>
<paragraph role="paragraph" id="par_id3154321" xml-lang="en-US" l10n="U" oldref="15">End Sub/Function</paragraph>
<paragraph role="paragraph" id="par_id3147318" xml-lang="en-US" l10n="U" oldref="16">The <emph>GoSub</emph> statement calls a local subroutine indicated by a label from within a subroutine or a function. The name of the label must end with a colon (":").</paragraph>
<paragraph role="warning" id="par_id3153190" xml-lang="en-US" l10n="U" oldref="17">If the program encounters a Return statement not preceded by <emph>GoSub</emph>, $[officename] Basic returns an error message. Use <emph>Exit Sub</emph> or <emph>Exit Function</emph> to ensure that the program leaves a Sub or Function before reaching the next Return statement.</paragraph>
<paragraph role="paragraph" id="par_id3145799" xml-lang="en-US" l10n="U" oldref="19">The following example demonstrates the use of <emph>GoSub</emph> and <emph>Return</emph>. By executing a program section twice, the program calculates the square root of two numbers that are entered by the user.</paragraph>
<paragraph role="heading" id="hd_id3156284" xml-lang="en-US" level="2" l10n="U" oldref="20">Example:</paragraph>
<paragraph role="paragraph" id="par_id3151073" xml-lang="en-US" l10n="U" oldref="21">Sub ExampleGoSub</paragraph>
<paragraph role="paragraph" id="par_id3154097" xml-lang="en-US" l10n="U" oldref="22">dim iInputa as Single</paragraph>
<paragraph role="paragraph" id="par_id3150715" xml-lang="en-US" l10n="U" oldref="23">dim iInputb as Single</paragraph>
<paragraph role="paragraph" id="par_id3153416" xml-lang="en-US" l10n="U" oldref="24">dim iInputc as Single</paragraph>
<paragraph role="paragraph" id="par_id3146970" xml-lang="en-US" l10n="U" oldref="25">iInputa = Int(InputBox$ ("Enter the first number: ","NumberInput"))</paragraph>
<paragraph role="paragraph" id="par_id3150329" xml-lang="en-US" l10n="U" oldref="26">iInputb = Int(InputBox$ ("Enter the second number: ","NumberInput"))</paragraph>
<paragraph role="paragraph" id="par_id3156277" xml-lang="en-US" l10n="U" oldref="27">iInputc=iInputa</paragraph>
<paragraph role="paragraph" id="par_id3150321" xml-lang="en-US" l10n="U" oldref="28">GoSub SquareRoot</paragraph>
<paragraph role="paragraph" id="par_id3154756" xml-lang="en-US" l10n="U" oldref="29">Print "The square root of";iInputa;" is";iInputc</paragraph>
<paragraph role="paragraph" id="par_id3155764" xml-lang="en-US" l10n="U" oldref="30">iInputc=iInputb</paragraph>
<paragraph role="paragraph" id="par_id3152960" xml-lang="en-US" l10n="U" oldref="31">GoSub SquareRoot</paragraph>
<paragraph role="paragraph" id="par_id3147340" xml-lang="en-US" l10n="U" oldref="32">Print "The square root of";iInputb;" is";iInputc</paragraph>
<paragraph role="paragraph" id="par_id3166450" xml-lang="en-US" l10n="U" oldref="33">Exit Sub</paragraph>
<paragraph role="paragraph" id="par_id3155176" xml-lang="en-US" l10n="U" oldref="34">SquareRoot:</paragraph>
<paragraph role="paragraph" id="par_id3149257" xml-lang="en-US" l10n="U" oldref="35">iInputc=sqr(iInputc)</paragraph>
<paragraph role="paragraph" id="par_id3146316" xml-lang="en-US" l10n="U" oldref="36">Return</paragraph>
<paragraph role="paragraph" id="par_id3154703" xml-lang="en-US" l10n="U" oldref="37">End Sub</paragraph>
</body>
</helpdocument>
