-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path1028.html
More file actions
137 lines (115 loc) · 5.91 KB
/
1028.html
File metadata and controls
137 lines (115 loc) · 5.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>Ayuda de DIV 2 - Sentencia RETURN</title>
<meta name="keywords" content="div, div2" />
<meta name="description" content="Ayuda en pantalla de DIV Games Studio 2" />
<meta http-equiv="Content-Language" content="ES" />
<meta name="author" content="Hammer Technologies" />
<meta name="copyright" content="© Copyright 1998,99 Hammer Technologies" />
<meta name="generator" content="divhelp v0.1 © 2007 Er_Makina" />
<meta name="robots" content="all,follow,index" />
<meta name="distribution" content="global" />
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="botonera">
<ul>
<li><a class="botonindice" href="indice.html">Índice</a></li>
<li><a class="botoninicio" href="3.html">Inicio</a></li>
<li><a class="botonglosario" href="4.html">Glosario</a></li>
<li><a class="botonfunciones" href="1032.html">Funciones</a></li>
</ul>
</div>
<h1>Sentencia RETURN</h1>
<p>La sentencia <strong>RETURN</strong> finaliza el proceso actual de forma inmediata, como si
se llegara al <a href="1091.html">END</a> de su <a href="1086.html">BEGIN</a>.</p>
<p>Esta sentencia en el código principal lo finalizará, pero si quedan procesos
vivos éstos se seguirán ejecutando. Para terminar un programa y todos sus
procesos se puede utilizar, por ejemplo, la función <a href="109.html">exit()</a>.</p>
<p>Un <strong>RETURN</strong> dentro de un proceso lo finalizará, matando a dicho
proceso.</p>
<div class="ejemplo">
<div class="ejtitulo">
Ejemplo:
</div>
<pre class="ejprograma">
<span class="syntax1">PROGRAM</span> mi_juego<span class="syntax3">;</span>
<span class="syntax1">BEGIN</span>
<span class="syntax1">LOOP</span>
<span class="syntax1">IF</span> <span class="syntax3">(</span>key<span
class="syntax3">(</span>_esc<span class="syntax3">))</span>
<span class="syntax1">RETURN</span><span class="syntax3">;</span>
<span class="syntax1">END</span>
<span class="syntax1">FRAME</span><span class="syntax3">;</span>
<span class="syntax1">END</span>
<span class="syntax1">END</span>
</pre>
</div>
<br />
<br />
<p>En este ejemplo, al pulsarse la tecla de escape (<strong>ESC</strong>) se ejecutará
la sentencia <strong>RETURN</strong>, finalizando el programa.</p>
<p><strong>Uso de RETURN para retornar un valor</strong></p>
<hr />
<p>Es posible construir procesos con un comportamiento similar a las funciones de otros
lenguajes de programación, que <strong>reciban una serie de parámetros y
devuelvan un valor</strong>. Por ejemplo, un proceso que reciba dos valores numéricos y
devuelva el mayor de ambos.</p>
<p>Para ello, se debe utilizar esta sentencia con la siguiente sintaxis:</p>
<p><strong>RETURN(</strong><a
href="1035.html"><expresión></a><strong>)</strong></p>
<p>También es importante no utilizar la sentencia <a href="1029.html">FRAME</a> dentro
del proceso, pues ésta retornará inmediatamente al proceso llamante. Cuando el
compilador encuentra la sentencia <a href="1029.html">FRAME</a> dentro de un <a
href="1016.html">PROCESS</a> lo cataloga directamente como proceso, descartando su posible uso
como función.</p>
<p><strong>Importante:</strong> Para poder retornar un valor con la sentencia
<strong>RETURN</strong> después de haber ejecutado una o varias sentencias <a
href="1029.html">FRAME</a>, se debe construir un bloque de tipo <a
href="1408.html">FUNCTION</a>.</p>
<hr />
<p>A continuación se muestra el ejemplo antes propuesto: una implementación de la
función matemática <strong>max</strong> que devuelve el mayor de sus dos
parámetros.</p>
<div class="ejemplo">
<div class="ejtitulo">
Ejemplo:
</div>
<pre class="ejprograma">
<span class="syntax1">PROGRAM</span> mi_juego<span class="syntax3">;</span>
<span class="syntax1">BEGIN</span>
x<span class="syntax3">=</span>max<span class="syntax3">(</span><span
class="syntax2">2</span><span class="syntax3">,</span> <span class="syntax2">3</span><span
class="syntax3">)+</span>max<span class="syntax3">(</span><span class="syntax2">5</span><span
class="syntax3">,</span> <span class="syntax2">4</span><span class="syntax3">);</span>
<span class="syntax1">END</span>
<span class="syntax1">PROCESS</span> max<span class="syntax3">(</span>a<span
class="syntax3">,</span> b<span class="syntax3">)</span>
<span class="syntax1">BEGIN</span>
<span class="syntax1">IF</span> <span class="syntax3">(</span>a<span
class="syntax3">></span>b<span class="syntax3">)</span>
<span class="syntax1">RETURN</span><span class="syntax3">(</span>a<span
class="syntax3">);</span>
<span class="syntax1">ELSE</span>
<span class="syntax1">RETURN</span><span class="syntax3">(</span>b<span
class="syntax3">);</span>
<span class="syntax1">END</span>
<span class="syntax1">END</span>
</pre>
</div>
<br />
<br />
<p>Tras ejecutarse este programa, la variable <strong>x</strong> del proceso principal
valdrá <strong>8</strong> (3+5).</p>
<hr />
<p><strong>Nota:</strong> Por defecto, si se utiliza la sentencia <strong>RETURN</strong> sin
la expresión entre paréntesis o la sentencia <a href="1029.html">FRAME</a> en un
proceso, el valor de retorno del mismo será su <a href="1039.html">código
identificador</a> de proceso.</p>
<hr />
Ver: <a href="1000.html">Sintaxis</a>
</body>
</html>