Etiqueta (informática)
keyboard_arrow_down
Contenido GOTO
. En lenguaje ensamblador, las etiquetas pueden usarse en cualquier lugar donde se pueda incluir una dirección (por ejemplo, como operando de una instrucción JMP
o MOV
). También en Pascal y sus variantes derivadas. Algunos lenguajes, como Fortran y BASIC, admiten etiquetas numéricas. Las etiquetas también se utilizan para identificar un punto de entrada en una secuencia compilada de instrucciones (p. ej., durante la depuración).C
Etiquetas de función
vacío Foo()int Número){} si ()Número c) 0) Goto error; bar()Número); Regreso;error: fprintf()stderr, "¡Número inválido!\n");}
Aquí, error es la etiqueta. La instrucción goto puede usarse para acceder a una instrucción etiquetada en el código. Después de un goto
, la ejecución del programa continúa con la instrucción después de la etiqueta.
Etiquetas de conmutación
case
, seguida de una expresión que evalúa una constante entera. Una etiqueta default consiste en la palabra clave default
. Las etiquetas case se utilizan para asociar un valor entero con una sentencia en el código. Cuando se alcanza una sentencia switch, la ejecución del programa continúa con la sentencia posterior a la etiqueta case cuyo valor coincida con el valor entre paréntesis de la sentencia switch. Si no existe dicha etiqueta case, pero sí una etiqueta default, la ejecución del programa continúa con la sentencia posterior a la etiqueta default. Si no existe una etiqueta default, la ejecución del programa continúa después de la sentencia switch.interruptor ()morir){}por defecto: printf()"inválido"\n"); descanso;Caso 1:Caso 3:Caso 5: printf()"odd\n"); descanso;Caso 2:Caso 4:Caso 6: printf()"evento"\n"); descanso;}
Ejemplos
Javascript
arriba: //Etiqueta el más exterior para el bucle.para ()Var i = 0; i c) 4; i++) {} para ()Var j = 0; j c) 4; j++) {} si ()j == 3 " i == 2) {} alerta()"i=" + i + ", j=" + j); //i=2, j=3 descanso arriba; } }}alerta()"i=" + i + ", j=" + j); //i=2, j=3
También es posible usar la instrucción break
para salir de los bloques de código:
arriba: {} consola.log()"foo") consola.log()"bar") descanso arriba consola.log()"baz")}// Que produciría: ////
Lisp común
tagbody
. A diferencia de muchos otros lenguajes de programación que permiten la navegación global, como C, las etiquetas solo son accesibles en el contexto de este operador. Dentro de un tagbody
, las etiquetas se definen como formas que comienzan con un símbolo; la forma especial go
permite la transferencia de control entre estas etiquetas.()Deja (()iteración NIL) ()tagbody Empieza ()impresión Empezar) ()setf iteración 0) aumento ()impresión iteración) ()incf iteración 1) ()Vamos. cheque) cheque ()si ()>= iteración 10) ()Vamos. final) ()Vamos. aumento) final ()impresión Hecho))
#n=
y #n#
. La primera etiqueta el objeto inmediatamente después, mientras que la segunda se refiere a su valor evaluado. En este sentido, las etiquetas constituyen una alternativa a las variables, ya que #n=
declara e inicializa una "variable" y #n#
accede a ella. El marcador de posición n designa un entero decimal sin signo seleccionado que identifica la etiqueta.()progn #1="hola" ()impresión #1#)
block
, que prescribe un nombre, y la macro loop
, que se puede identificar mediante una cláusula named
. Es posible salir inmediatamente de un formulario con nombre mediante el operador especial return-from
.()bloque Myblock ()bucle para iteración desde 0 do ()si ()>= iteración 10) ()Regreso de Myblock Hecho) ()impresión iteración)))
()bucle llamado myloop para iteración desde 0 do ()si ()>= iteración 10) ()Regreso de myloop Hecho) ()impresión iteración))
case
, ccase
, ecase
, typecase
, ctypecase
y etypecase
definen sentencias switch.
()Deja (()mi valor 5) ()Caso mi valor ()1 ()impresión "uno") ()2 ()impresión "dos") (()3 4 5) ()impresión "tres cuatro o cinco") ()de otra manera ()impresión "cualquier otro valor")))
()Deja (()mi valor 5) ()Tipo mi valor ()lista ()impresión "una lista") ()cuerda ()impresión "una cuerda") ()Número ()impresión "un número") ()de otra manera ()impresión "cualquier otro tipo")))
Véase también
- Número de línea
Referencias
- ^ "C Sección estándar 6.8.6.1 La declaración de Goto". Archivado desde el original el 14 de diciembre de 2007. Retrieved 2008-07-03.
- ^ "GOTO Declaración QuickSCREEN". Microsoft. 1988. Archivado desde el original el 2009-07-25. Retrieved 2008-07-03.
- ^ O. Lawlor. "nam x86 Assembly". Retrieved 2008-07-03.
- ^ "Diferencias entre GW-BASIC y QBasic". Archivado desde el original en 2010-02-10.
- ^ Kent Pitman. "CLHS: Operador Especial TAGBODY". Retrieved 2020-08-18.
- ^ Kent Pitman. "CLHS: Sección 2.4.8". Retrieved 2020-08-18.
- ^ Kent Pitman. "CLHS: Macro CASE, CCASE, ECASE". Retrieved 2020-08-20.
- ^ Kent Pitman. "CLSH: Macro TYPECASE, CTYPECASE, ETYPECASE". Retrieved 2020-08-20.
Más resultados...