Ver la Versión Completa : [Sintaxis] Comando Perform...
Fito
5 de enero de 2023, 15:50
Hola Amigos:
En otros coboles he visto que hay una instruccion EXIT PERFORM CYCLE. Esto hace que un bucle siga iterando salteando las instrucciones siguientes.
En PowerCobol tendremos algo parecido?
Saludos
Fito....
JCantero
5 de enero de 2023, 16:21
@Fito, esto funciona en opencobol, acucobol y rmcobol
No tengo el compilador de powercobol, pruebalo.
************************************************** ****************
* Author:
* Date:
* Purpose:
* Tectonics: cobc
************************************************** ****************
IDENTIFICATION DIVISION.
PROGRAM-ID. YOUR-PROGRAM-NAME.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 i pic 99.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Hello world"
perform varying i from 1 by 1 until i = 10
display i
if i = 5 THEN
exit perform
end-if
end-perform.
STOP RUN.
END PROGRAM YOUR-PROGRAM-NAME.
Josber
5 de enero de 2023, 16:27
@Fito, Te refieres a que no se ejecutan las instrucciones del perform, pero éste continúa, ¿no?, o ¿te refieres a salir de un perform?
JCantero
5 de enero de 2023, 16:45
@Fito, incluso en el caso de que tengas perform anidados "exit perform" sale del perform que lo contiene
************************************************** ****************
* Author:
* Date:
* Purpose:
* Tectonics: cobc
************************************************** ****************
IDENTIFICATION DIVISION.
PROGRAM-ID. YOUR-PROGRAM-NAME.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 i pic 99.
01 j pic 99.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Hello world"
perform varying i from 1 by 1 until i = 10
display i
if i = 5 THEN
exit perform
end-if
perform varying j from 1 by 1 until j = 10
display '--'
if j = 3 THEN
exit perform
end-if
end-perform
end-perform.
STOP RUN.
END PROGRAM YOUR-PROGRAM-NAME.
Fito
6 de enero de 2023, 14:21
Hola Amigos:
Me refiero a que siga con el otro elemento del bucle, que salte las instrucciones de abajo, no quiero que salga del perform. El EXIT PERFORM en power está.
Saludos....
Fito...
Kuk
6 de enero de 2023, 15:01
@Fito, el compilador de Fujitsu no lo tiene. Debes hacerlo mediante IFs y ELSEs.
Kuk
6 de enero de 2023, 18:05
@Fito, también puedes hacerlo con párrafos y simular el Break del lenguaje C, que es lo que querías en principio:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 idx pic 9(4) comp-5.
PROCEDURE DIVISION.
move 1 to idx
perform loop
thru loop-exit
until idx > 10
goback
.
loop.
if idx = 5
add 1 to idx
go to loop-exit
end-if
display idx
add 1 to idx
.
loop-exit.
exit.
Fito
6 de enero de 2023, 18:09
Hola @Kuk, de forma "casera" lo hago así, pero era por si había una instrucción que me podía clarificar el código, nada más.
De esa manera como decís, es como lo vengo haciendo desde siempre
Saludos
Fito...
Kuk
6 de enero de 2023, 22:57
@Fito, PowerCOBOL no acepta lo que mencionas en tu primer post, esto es seguro. Así que no queda otra que hacerlo como lo hacías siempre. ;)
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.