Anuncios Google

Aprendiendo a usar los bucles.

Tutoriales Avanzados Homebrewes

Antes hemos estado usando el famoso bucle "while" infinito. Ahora vamos a aprender todos los que hay aparte de este y vamos a profundizar en cada uno. En un programa es imprescindible el uso de los bucles, también llamados ciclos, asi que presta atención e intenta recordar el funcionamiento y nombre de cada uno. Espero que os sea util este tutorial. Todo dicho, asi que: ¡Allá vamos!

Autor: klozz.

Los bucles son parecidos en todos los lenguajes, solo que su "llamada" es diferente en cada lenguaje. Estos son los que existen en C:

While

Se usa para realizar un grupo de acciones varias o infinitas veces.

Su formato general es:

while(condición) 
 
{ 
 
/* grupo cierto de instrucciones; 
 
instrucción(es) para salir del ciclo; */
 
} 

Ejemplo:

while(a <= 4){
 
pspDebugScreenPrint("Mientras  a sea igual a 4 se repetira el ciclo");
 
a++;
 
// "a++" significa lo mismo que a = a+1
 
}

El a++ hará que se aumente a "a" uno, y puesto que ya no será 4, sino 5, se romperá el bucle while.

do While

La diferencia básica con el while normal es que primero realiza la acción, sin importar si la condicion es verdadera o falsa, y luego es cuando comprueba la condición. Si la condicion vuelve a ser cierta, vuelve a repetirse el bucle, sino, rompe el bucle.

Su formato general es:

do { 
 
/* grupo cierto de instrucción(es); 
 
instrucción(es) de rompimiento de ciclo; */
 
} while (condición); 

Ejemplo:

int a =1; 
 
do{
 
//todo el codigo a realizar 
 
pspDebugScreenPrint("Esto estará repitiendoce mientras la condición no se cumpla. Al cumplirse la condición el programa terminará su ejecución");
 
}while(a==3)
 

For

Se utiliza para realizar una acción un numero determinado de veces. Estructura:

for *variable* desde *numero* hasta *numero*
Capturar dato [*variable*]
Fin

La sintaxis del for es esta:

for(i=0;i<n;i++){
}

Se entiende que un for debe incluir pues:

  • Una variable de control de ciclo (en este caso "i").
  • Un valor inicial (en este caso, 0).
  • Un valor final (en este caso, n).
  • Un incremento (i++, que es igual a i = i+1).

Esto ha sido todo en cuanto a bucles. Espero que os resulte fácil. ¡Hasta la próxima entrega! 

4.333335
Tu voto: Ninguno Votos totales: 4.3 (60 votos)

Anuncios Google

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de manolitico

No me va....

/EL MAIN.C//
//no me funcionaba haciendolo yo, y el jemeplo tampoco..//
 
 
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
PSP_MODULE_INFO("Escribir en pantalla", 0, 1, 1);
#define printf pspDebugScreenPrintf
 
//menu del home
int exit_callback(int arg1, int arg2, void *common) { 
sceKernelExitGame(); 
return 0; 
}
 
int CallbackThread(SceSize args, void *argp) { 
int cbid;
 
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); 
sceKernelRegisterExitCallback(cbid);
 
sceKernelSleepThreadCB();
 
return 0; 
}
 
int SetupCallbacks(void) { 
int thid = 0;
 
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); 
if(thid >= 0) { 
sceKernelStartThread(thid, 0, 0); 
}
 
return thid; 
}
 
 
int main()
{
 
pspDebugScreenInit();
SetupCallbacks();
while(a <= 4){
 
pspDebugScreenPrint("Mientras  a sea igual a 4 se repetira el ciclo");
a++;
}
sceKernelSleepThread();
return 0;
}
 
 
 
 
 
//MAKEFILE//
 
TARGET = Testeador
OBJS = main.o
 
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
 
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Bucle texto while
 
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak


Imagen de Dioni0396

Como te va a ir si...

1. el valor a no esta declarado

2. No te recomiendo poner while en el makefile...

Imagen de manolitico

NAAAAA

si esque soy un melon... osea, para declarar, antes hay que poner int?

Imagen de Dioni0396

Sep

int a=0;

Imagen de manolitico

pero, imaginate que con el

pero, imaginate que con el bucle while quiero hacer que solo se ponga 10 veces printf ("hola \n"), que tengo que hacer??

porque lo que he hecho, salen muchas letras moviendose


Imagen de Dioni0396

.

/EL MAIN.C//
//no me funcionaba haciendolo yo, y el jemeplo tampoco..//
 
 
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
PSP_MODULE_INFO("Escribir en pantalla", 0, 1, 1);
#define printf pspDebugScreenPrintf
 
//menu del home
int exit_callback(int arg1, int arg2, void *common) { 
sceKernelExitGame(); 
return 0; 
}
 
int CallbackThread(SceSize args, void *argp) { 
int cbid;
 
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); 
sceKernelRegisterExitCallback(cbid);
 
sceKernelSleepThreadCB();
 
return 0; 
}
 
int SetupCallbacks(void) { 
int thid = 0;
 
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); 
if(thid >= 0) { 
sceKernelStartThread(thid, 0, 0); 
}
 
return thid; 
}
 
 
int main()
{
 
pspDebugScreenInit();
SetupCallbacks();
int a=0;
while(a <= 10){ //Pongo 10 y se repetira 10 veces
 
pspDebugScreenPrint("Hola\n"); //la \n hace que el texto se baje una linea
a++;
}
sceKernelSleepThread();
return 0;
}
 
 
 
 
 
//MAKEFILE//
 
TARGET = Testeador
OBJS = main.o
 
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
 
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Bucle texto
 
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Imagen de manolitico

no me funcionaba, pero ya lo

no me funcionaba, pero ya lo he arreglado, en la primera linea de code en el comentario había puesto "/" en vez de "//".

 

Gracias ya me funciona, puede ser que por unos espacios no me funciuonara correctamente :D, voy a ir comprobando el code para modificar sin romperlo.


Imagen de klozz

Gracias por publicarlo n.n y

Gracias por publicarlo n.n y los coment de abajo hice un tuto para lo que dices xD ya que el if else ,Switch no son ciclos xD

Imagen de Dioni0396

Falta el switch

y case.

Eso no es un bucle ¬¬

Eso no es un bucle ¬¬

Imagen de Dioni0396

Entonces que es xD

Entonces que es?

Imagen de clizana

.

Switch es una sentencia de selección al igual que if.

Bucle es un ciclo, itera, se repite y en la selección no se hace eso.

 


Version Actual GoearPSP: Descontinuado

http://dev.cristian.lizana.in/

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.