0% encontró este documento útil (0 votos)
68 vistas7 páginas

Guia C# Estructuras Iterativas

progrmacion de c#
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas7 páginas

Guia C# Estructuras Iterativas

progrmacion de c#
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

2.3.

Estructuras repetitivas
Hemos visto cómo comprobar condiciones, pero no cómo hacer que una cierta parte de
un programa se repita un cierto número de veces o mientras se cumpla una condición
(lo que llamaremos un "bucle"). En C# tenemos varias formas de conseguirlo.

2.3.1. while
Estructura básica de un bucle "while"
Si queremos hacer que una sección de nuestro programa se repita mientras se cumpla
una cierta condición, usaremos la orden "while". Esta orden tiene dos formatos distintos,
según comprobemos la condición al principio o al final del bloque repetitivo.

En el primer caso, su sintaxis es

while (condición)
sentencia;

Es decir, la sentencia se repetirá mientras la condición sea cierta. Si la condición es


falsa ya desde un principio, la sentencia no se ejecuta nunca. Si queremos que se
repita más de una sentencia, basta agruparlas entre llaves: { y }.
//estructura repetitiva while
using System;

namespace repetirwhile
{
class Program
{
public static void Main(string[] args)
{
int numero;

[Link]("Teclea un número (0 para salir): ");


numero = Convert.ToInt32([Link]());
while (numero != 0)
{
if (numero > 0)
[Link]("Es positivo");
else
[Link]("Es negativo");

[Link]("Teclea otro número (0 para salir): ");


numero = Convert.ToInt32([Link]());
}

[Link]("Press any key to continue . . . ");


[Link](true);
}
}
}
En este ejemplo, si se introduce 0 la primera vez, la condición es falsa y ni siquiera
se entra al bloque del "while", terminando el programa inmediatamente.

Ejercicios propuestos:
([Link].1) Crea un programa que pida al usuario su contraseña (numérica).
Deberá terminar cuando introduzca como contraseña el número 1111, pero
volvérsela a pedir tantas veces como sea necesario.
([Link].2) Crea un "calculador de cuadrados": pedirá al usuario un número y
mostrará su cuadrado. Se repetirá mientras el número introducido no sea cero
(usa "while" para conseguirlo).
([Link].3) Crea un programa que pida de forma repetitiva pares de números al
usuario. Tras introducir cada par de números, responderá si el primero es múltiplo
del segundo.
([Link].4) Crea una versión mejorada del programa anterior, que, tras
introducir cada par de números, responderá si el primero es múltiplo del
segundo, o el segundo es múltiplo del primero, o ninguno de ellos es múltiplo
del otro.

2.3.2Contadores usando un bucle "while"


Ahora que sabemos "repetir" cosas, podemos utilizarlo también para contar. Por
ejemplo, si queremos contar del 1 al 5, usaríamos una variable que empezase en
1, que aumentaría una unidad en cada repetición y se repetiría hasta llegar al valor
5, así:

using System;

namespace while2

class Program

public static void Main(string[] args)

int n = 1;

while (n < 6)

[Link](n);

n = n + 1;

}
[Link]("Press any key to continue . . . ");

[Link](true);

Ejercicios propuestos:

([Link].1) Crea un programa que escriba en pantalla los números del 1 al 10, usando
"while".

([Link].2) Crea un programa que escriba en pantalla los números pares del 26 al 10
(descendiendo), usando "while".

([Link].3) Crea un programa calcule cuantas cifras tiene un número entero positivo
(pista: se puede hacer dividiendo varias veces entre 10).

([Link].4) Crea el diagrama de flujo y la versión en C# de un programa que dé al


usuario tres oportunidades para adivinar un número del 1 al 10.

2.3.2. do ... while

Este es el otro formato que puede tener la orden "while": en este caso, la condición se
comprueba al final, de modo que siempre se dará al menos una pasada por la zona
repetitiva (se podría traducir como "repetir…mientras"). El punto en que comienza la
parte repetitiva se indica con la orden "do", así:

do

sentencia;

while (condición);

Al igual que en el caso anterior, si queremos que se repitan varias órdenes (es lo
habitual), deberemos encerrarlas entre llaves.
/*
* ciclo Do-while
*/
using System;

namespace dowhile
{
class Program
{
public static void Main(string[] args)
{
int valida = 711; int clave;

do
{
[Link]("Introduzca su clave numérica: ");
clave = Convert.ToInt32([Link]());

if (clave != valida)
[Link]("No válida!");
}
while (clave != valida);
[Link]("Aceptada.");

[Link]("Press any key to continue . . . ");


[Link](true);
}
}
}
si preferimos que la clave sea un texto en vez de un número, los cambios al
programa son mínimos, basta con usar "string" e indicar su valor entre comillas
dobles:

using System;

namespace dowhile2
{
class Program
{
public static void Main(string[] args)
{
string valida = "secreto";

string clave;
do
{
[Link]("Introduzca su clave: ");
clave = [Link]();

if (clave != valida)
[Link]("No válida!");
}
while (clave != valida);
[Link]("Aceptada.");

[Link]("Press any key to continue . . . ");


[Link](true);
}
}
}
3.2.3 Ejercicios propuestos:
([Link]) Crear un programa que pida números positivos al usuario, y vaya
calculando y mostrando la suma de todos ellos (terminará cuando se teclea un
número negativo o cero).
([Link]) Crea un programa que escriba en pantalla los números del 1 al 10,
usando "do..while".
([Link]) Crea un programa que escriba en pantalla los números pares del 26 al 10
(descendiendo), usando "do..while".
([Link]) Crea un programa que pida al usuario su identificador y su contraseña
(ambos numéricos), y no le permita seguir hasta que introduzca como
identificador "1234" y como contraseña "1111".
([Link]) Crea un programa que pida al usuario su identificador y su contraseña, y
no le permita seguir hasta que introduzca como nombre "Pedro" y como
contraseña "Peter".

2.2.1. for
Ésta es la orden que usaremos habitualmente para crear partes del programa que
se repitan un cierto número de veces. El formato de "for" es

for (valorInicial; CondiciónRepetición; Incremento)


Sentencia;

Así, para contar del 1 al 10, tendríamos "1" como valor inicial, "<=10" como
condición de repetición, y el incremento sería de 1 en 1. Es muy habitual usar la
letra "i" como contador cuando se trata de tareas muy sencillas, así que el valor
inicial sería "i=1", la condición de repetición sería "i<=10" y el incremento sería
"i=i+1":
for (i=1; i<=10; i=i+1)
...

La orden para incrementar el valor de una variable ("i = i+1") se puede


escribir de la forma abreviada "i++", como veremos con más detalle en el
próximo tema, de modo que la forma habitual de crear el contador
anterior sería

for (i=1; i<=10; i++)


...

En general, será preferible usar nombres de variable más descriptivos que


"i". Así, un programa que escribiera los números del 1 al 10 podría ser:
using System;

namespace fora
{
class Program
{
public static void Main(string[] args)
{
int contador;

for (contador=1; contador<=10; contador++)


[Link]("{0} ", contador);

[Link]("Press any key to continue . . . ");


[Link](true);
}
}
}

2.3.2Contar con letras


Para "contar" no necesariamente hay que usar números. Por ejemplo,
podemos usar letras, si el contador lo declaramos como "char" y los valores
inicial y final se detallan entre comillas simples, así:
using System;

namespace for3
{
class Program
{
public static void Main(string[] args)
{
char letra;
for (letra='a'; letra<='z'; letra++)
[Link]("{0} ", letra);

[Link]("Press any key to continue . . . ");


[Link](true);
}
}
}
([Link]) Crea un programa que muestre los números del 10 al 20, ambos
incluidos.
([Link]) Crea un programa que escriba en pantalla los números del 1 al 50
que sean múltiplos de 3 (pista: habrá que recorrer todos esos números y ver
si el resto de la división entre 3 resulta 0).
([Link].3) Crea un programa que muestre los números del 100 al 200
(ambos incluidos) que sean divisibles entre 7 y a la vez entre 3.
([Link]) Crea un programa que muestre la tabla de multiplicar del 9.
([Link]) Crea un programa que muestre los primeros ocho números pares: 2 4 6 8
10 12 14 16 (pista: en cada pasada habrá que aumentar de 2 en 2, o bien
mostrar el doble del valor que hace de contador).

También podría gustarte