Los booleans (abreviado bool y como se usa en C#) pueden tener dos
valores distintos que son true y false.
Un ejemplo de un bool seria
bool Boolean = false;
aunque un bool abarca mucho mas, y es una de las variables mas usadas
aunque muchos no lo sepan porque no se define explicitamente, por ejemplo, los
if-else if- else.
CONVERSIONES
Para transformar valores numéricos de una variable
a otra(ejemplo de byte a int) es simple usar esta conversión genérica: se
escribe la variable A LA QUE se desea convertir la
variable entre paréntesis, seguida de la variable a convertir por ejemplo
(Variable Salida)valor:
//tenemos un byte 120 y queremos convertirlo a ushort
byte
ejemplo = 120;
ushort
ejemplo2 = (ushort)ejemplo;
Aunque hay que tener cuidado porque en ciertos
casos podrías tener una perdida de datos, ejemplo:
//tenemos un double 15,3231 y queremos convertirlo a byte
double
ejemplo = 15.3231;
byte
ejemplo2 = (byte)ejemplo;
¿El resultado cual crees que será? Exacto, será 15
porque la variable byte no acepta decimales, por lo que se borrara todo lo que
esta después del punto(.).
Para transformar un algún valor a String se usa el
método ToString()
Ejemplo:
//tenemos un byte 130 y queremos convertirlo a string
byte
ejemplo = 130;
string
ejemplo2 = ejemplo.ToString();
//queremos tener algun valor de un DateTime en un string, por ejemplo la
hora(solo hora)
string ejemplo2 = DateTime.Now.Hour.ToString();
En caso de querer revertir esto, se puede usar el
método variable.Parse(string);
Ejemplo:
//Tenemos un string “12345” y queremos que sea ushort
string
ejemplo = "12345";
ushort
ejemplo2 = ushort.Parse(ejemplo);
Un ejemplo usando los casos anteriores
//hacemos
que la consola nos pida un numero
Console.WriteLine("escribe un numero: ");
//como fue escrito en la consola, el numero sera una cadena
//asi que la convertiremos a la variable int
int
numero = int.Parse(Console.ReadLine());
//convertimos el numero de la variable int a byte
byte
numero2 = (byte)numero;
//convertimos la variable byte llamada numero2 a string y la escribimos en
la consola
Console.WriteLine(numero2.ToString());
IF
-ELSE IF - ELSE
Desde ahora lo
llamaremos simplemente “if” Este tipo de bool, sirve para hacer una condición
dentro de tu código, veamos los operadores que usaremos para luego explicarlo
un poco mas detalladamente.
Los operadores que se
usan en los bool, específicamente if-else if- else son:
== (si ambos valores,
uno a cada lado del operador son iguales, se ejecutara el codigo)
int X = 130;
int Y = 270;
if(X == Y)
{
//Codigo
}
X != Y (indica no, si
x NO ES IGUAL A y, se ejecutara el
código)
int X = 130;
int Y = 270;
if(X != Y)
{
//Codigo
}
X >= Y(si X es
mayor o igual a Y, se ejecutara el código)
int X = 130;
int Y =
270;
if(X >= Y)
{
//Codigo
}
X <= Y(si X es
menor o igual a Y, se ejecutara el código)
int X = 130;
int Y = 270;
if(X <= Y)
{
//Codigo
}
X > Y(si X es mayor
que Y, s ejecuta el código)
int X = 130;
int Y = 270;
if(X > Y)
{
//Codigo
}
X < Y(si X es menor
que Y, se ejecuta el código)
int X = 130;
int Y = 270;
if(X < Y)
{
//Codigo
}
&& (se usa
como si uno hablara con “Y” ,sirve para anexar otra condición al if, y si todas
las condiciones anexadas con && se cumplen, se ejecutara el código)
ejemplo
bool ejemplo1 = true;
bool
ejemplo2 = true;
//si es que ejemplo1 Y
ejemplo2 son true, se ejecutara el codigo
if(ejemplo1
== true && ejemplo2 == true)
{
//Codigo
}
|| (Se usa como si se hablara con “O”, sirve para anexar otra condición
al if, y si una se cumple se puede ejecutar el código) ejemplo
bool ejemplo1 = true;
bool
ejemplo2 = true;
//si es que ejemplo1 O ejemplo2 son
true, se ejecutara el codigo
if(ejemplo1
== true || ejemplo2 == true)
{
//Codigo
}
condición ? valor1 :
valor2 (Este es un if acortado se podria decir, si la condición se cumple
devuelve valor1, si no, devuelve valor2, veamoslo con un ejemplo en conquer,
muchos usan la source 5375++, vayan a al
npc “eternity” y verán algo como esto(removí client.Entity obviamente), se
revisa primero el paréntesis, revisemos un ejemplo para aclararlo
int
Level = 111;
int
Job = 135;
//si Job es igual a 135, devolvera 110, si
Job != a 135, devolvera 120 (135 es el job del watertaoist que //renace al level 110) luego se revisa el if
completo, si Level es mayor al valor devuelto, ejecuta el codigo
if
(Level < (Job == 135 ? 110 : 120))
{
//codigo
}
El uso de del operador
anterior es equivalente a esto:
int Level =
111;
int
Job = 135;
int LevelNecesario = 0;
if (Job == 135)
LevelNecesario = 110;
else if (Job != 135)
LevelNecesario
= 120;
if
(Level > LevelNecesario)
{
//codigo
}
El que solo haya usado
integers y bools no quiere decir que sean las únicas variables que se pueden
pasar por un if, pueden ser clases, strings, etc.…
Estructura
Un
if tiene la siguiente estructura.
if(condicion1)//OBLIGATORIO
{
//Codigo
}
else
if(condicion2)//OPCIONAL
{
//Codigo
}
else//OPCIONAL, SE USA CUANDO TODAS LAS OTRAS CONDICIONES
FUERON FALSE, ENTONCES SE EJECUTA EL CODIGO DEL ELSE
{
//Codigo
}
Como
verán, la única parte obligatoria en un if, es justamente el if, o sea estos
casos son válidos(contando la estructura anterior
1) if(condicion1)//OBLIGATORIO
{
//Codigo
}
2) if(condicion1)//OBLIGATORIO
{
//Codigo
}
else
if(condicion2)//OPCIONAL
{
//Codigo
}
3) if(condicion1)//OBLIGATORIO
{
//Codigo
}
else//
{
//Codigo
}
Veamos porque.
If preguntara dentro del código asi
¿Es lo que esta dentro del paréntesis cierto? Con dos respuestas
probables, si y no (true y false), si no existe un if, es imposible que exista
un else if o un else
Else if es como otro intento, puedes agregar todos los else
if que quieras, funciona asi
si todos los if y else if
anteriores fueron no ¿ lo que esta dentro de este paréntesis es cierto?, tiene
las mismas respuestas probables que el if.
Else es en caso de que ninguno de los if - else if
anteriores fuera cierto, funciona asi
Si todos los casos anteriores fueron no,
ejecutar esta acción.
En caso de no estar esta opción en tu
código, es posible que no se ejecute ningun código de tu bloque if
No necesariamente las condiciones serán entre integers, puede ser cualquier variable, DateTimes, strings, etc…
CICLOS
Un ciclo, es es un código hecho para que se repita
cierta cantidad de veces, esta cantidad de repeticiones es la cantidad veces en que la condición del ciclo sea true,
y al terminar, continua ejecutando un código, los tipos de ciclo son: For,
foreach, while, do-while que los explicaremos ahora excepto do-while, nunca
lo he usado y mi explicación seria algo mala.
For: este ciclo tiene la siguiente estructura:
for([variable], [condición], [acción a ejecutar
cada vez que se cumpla un ciclo])
{
//Codigo
}
Funciona así:
Se cumple el ciclo, y entonces se aplica el tercer
parametro del ciclo, y luego se usa el segundo de la siguiente manera
Ejemplo: haremos un código en consola para elevar
un numero(base) a una potencia
Console.WriteLine("Escribe la base");
//Establecemos
la base de la potencia
int Base = int.Parse(Console.ReadLine());
//Creamos un int igual a la base, ¿por qué?, porque la base es constante,
pero el resultado a medida
//que se
aplica la potencia no
int
NuevoValor = Base;
Console.WriteLine("Escribe a cuanto deseas elevar la base");
//definimos
a cuanto estar elevada la base
int
Potencia = int.Parse(Console.ReadLine());
//creamos
el ciclo, definimos i = 1 porque toda potencia elevada a 1 sera igual a la base
//Creamos
la condicion, cada vez que i sea menor que la potencia, se multiplicara el
nuevovalor por la base
//y sumara 1 a i
for (int i = 1; i
< Potencia; i++)
{
NuevoValor *= Base;
}
Console.WriteLine("El resultado es: " +
NuevoValor.ToString());
Console.ReadLine();
While: Este ciclo, en teoría se puede usar en la mayoría
de los casos en que se puede usar el ciclo for, pero cuando pasemos el ciclo
foreach, veremos una manera de usar el ciclo while en el que no se puede usar
el ciclo for.
la estrutura
es la siguiente
while(condición)
{
//Codigo
}
Funciona asi: Mientras la condición se cumpla,
ejecutar código, si deja de cumplirse, seguir ejecutando el código, pero se
debe tener cuidado con crear un ciclo infinito ya que el código siguiente al
ciclo nunca se ejecutara.
Ejemplo de un ciclo while
//definimos
un bool en false y un int para el ciclo
bool
ejemplo = false;
int
i = 0;
//mientras
el bool sea falso, se ejecuta el codigo dentro del ciclo
while(ejemplo ==
false)
{
if (i < 10)
{
i++;
Console.Write(i + " ");
}
}
else
ejemplo = true;
}
Console.WriteLine();
Console.WriteLine("Ciclo terminado");
Console.ReadLine();
Ejemplo de un ciclo while infinito
//definimos
un bool en false y un int para el ciclo
bool
ejemplo = false;
int
i = 0;
//mientras
el bool sea falso, se ejecuta el codigo dentro del ciclo
while(ejemplo ==
false)
{
if (i < 10)
{
i++;
Console.Write(i + " ");
}
}
Console.WriteLine();
Console.WriteLine("Ciclo
terminado");
Console.ReadLine();
¿Cual es el problema? La variable a la que hace
referencia la condición jamás cambia, por lo que el ciclo se ejecutara
permanentemente, prueba el último código. ¿Puedes adivinar porque no continua
escribiendo los números siendo que el ciclo no para de de ejecutarse? La
respuesta es porque porque esta escrito un if que revisa si es que el int es
menor que 10, y si es que lo es, le suma
1 al int.
Foreach: Este tipo de ciclo lo que hace es aplicar alguna
acción a CADA UNO de los objetos que cumplan la condición, se usa especialmente
para variables dentro de alguna colección (puedes leer el archivo
Colecciones.doc para entenderlas mas).
Ejemplo mezclando los dos ciclos (while y foreach),
el método del string Split y un StringBuilder:
Crea un archivo de texto llamado ejemplo.txt en la
carpeta bin/debug del proyecto que estas usando(si no tiene carpeta, apreta
click en archivo y luego en guardar todo), copia dentro lo siguiente
3 un
11 xD
5 pero
8 en
1 Pablito
7 pego
10 manito
2 clavo
6 se
9 la
4 clavito
Ahora lo que haremos será ordenar la frase que esta
con números al comienzo, usaremos un stringbuilder para comenzar a usar un
código distinto al Console.Write(); para ponerlo más en práctica, aun así eres
libre de cambiarlo.
En cada comentario, si al final esta escrito ”…” es
porque continua un poco mas abajo a medida que avanza el código
StringBuilder
sb = new StringBuilder();
//Creamos
un array de strings, en que cada string dentro del array es una linea del
archivo "ejemplo.txt"
string[] lineas =
File.ReadAllLines("ejemplo.txt");
int i = 1;
//mientras
i sea menor a la cantidad de strings en el array...
while
(i <= lineas.Length)
{
//Para
cada linea palabra en el array...
foreach (string linea in
lineas)
{
string[] split = linea.Split(' ');
//si la primera palabra de la la linea es igual
al int i ejecuta el codigo...
if(split[0] == i.ToString())
{
sb.Append(split[1]
+ " ");
//indicamos que una
palabra fue agregada
i++;
}
}
}
//Termina
el ciclo y escribimos la frase ordenada en la consola
Console.WriteLine(sb.ToString());
Console.ReadLine();
METODOS
Mas de una vez seguramente te topaste con uno de
estos, los métodos sirven para hacer mas rápida de escribir una acción que
debes usar varias veces, como también sirve para hacer mas organizado tu código
fuente, para usarlos se llaman de la siguiente manera
ClaseEnDondeRadica.NombreMetodo(parámetros
necesarios). La estructura es la siguiente
[tipo][nombre](parámetros)
{
Codigo
}
Se debe mencionar, que un método NO PUEDE estar
dentro de otro método, solo se pueden llamar otros métodos.
El nombre puede ser cualquiera, siempre y cuando no comience
con un numero.
Parámetros, son las variables o clase NECESARIOS para
ejecutar el código (si no es necesario ninguno, no hay porque agregar alguno).
Es como si el método te pidiera algo.
Por ejemlo si tienes en parámetros algo como
(string ejemplo), el método te esta pidiendo un string, y como ya aprendimos,
el string puede ser algo entre comillas, “texto” o algún string que hallamos
definido previamente.
Código, no necesita una gran explicación, es lo mismo que
hubieses puesto en caso de que no fuera un método o lo que quieres que pase al
llamar el método
Tipo,aprenderemos las mas usadas y básicas, que son
void, o una variable
void : no retorna ningún valor, solo ejecutara alguna
acción.
Ejemplo de un void:
Public
static void Write(string texto)
{
Console.WriteLine(texto);
}
Como verán, no devuelve ningún valor pero ejecuta
una acción y es escribir en la consola lo que uno escriba dentro de los
paréntesis de parámetros cuando alguien llame al void.
Ejemplo:
Write(“ejemplo”);
//desde ahora será igual a
Console.WriteLine(“ejemplo“);
Ahora veremos el otro tipo de métodos que
aprenderemos, que a diferencia del void, si devuelve un valor. Se usan de la
siguiente manera
[Variable] [Nombre](Parámetros)
{
Codigo
Return valoraretornar;
}
Por ejemplo:
Arriba de
static void Main(string[]
args)
Copia este método
private static int
multiplicar (int multiplo1, int multiplo2)
{
return
multiplo1 * multiplo2;
}
Ahora en el void Main, agrega esto
Console.WriteLine("escribe el primer multiplo");
int m1 = int.Parse(Console.ReadLine());
Console.WriteLine("escribe el
segundo multiplo");
int m2 = int.Parse(Console.ReadLine());
Console.WriteLine("el resultado es
" + multiplicar(m1, m2));
Console.ReadLine();
Y genera, ahora:
Prueba removiendo el return y podras saber el error
que da mientras no escribas return en los métodos que si retornan un valor.
Ensaya un poco, escribe un método que retorne el
numero(base) elevada a una potencia. No sigas hasta que hayas tratado
algunas veces
//double
para que se puedan elevar valores decimales
public static double
elevado(double Base, double
potencia)
{
double nuevovalor = Base;
for(int i = 1; i <
potencia; i++)
{
nuevovalor *= Base;
}
return
nuevovalor;
}
public static void elevar()
{
Console.WriteLine("escribe el numero base que deseas elevar");
double numero = double.Parse(Console.ReadLine());
Console.WriteLine("escribe el
numero al cual deseas elevar la base");
double Potencia =
double.Parse(Console.ReadLine());
Console.WriteLine("el resultado es:
" + elevado(numero, Potencia));
Console.ReadLine();
Console.Clear();
elevar();
}
Y en el void Main, agrega
elevar();