Mostrando las entradas con la etiqueta else. Mostrar todas las entradas
Mostrando las entradas con la etiqueta else. Mostrar todas las entradas

miércoles, 1 de enero de 2014

Tutorial Java en Linux Basico 4

Estructuras selectivas Condicionales

Algo muy muy básico en los lenguajes de programación son las estructuras selectivas,de ahora en adelante condicionales,en java me tarde un poco en hablar de esto,pero es que primero debíamos conocer lo que hasta ahora he escrito(según mi enseñanza).

Las condicionales deciden que camino tomar en nuestro código,esto puede cambiar totalmente el funcionamiento del mismo,ya que depende a que nivel ejecutemos una sentencia selectiva.

En Java las condicionales se definen con las palabras:

if

else

y

else if

Las estructuras tienen una sintaxis tipo Perl con la condición entre paréntesis y el bloque entre llaves:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
if (condicion) {
   /*
      Un bloque
      grande
   */
} else {
   /*
      Otro bloque
      Grande
   */
}


O bien si es una pequeña ejecución no necesita bloque y se puede usar con la sintaxis de terminación de una linea (punto y coma):


1
2
3
4
if (condicio)
   /* a ejecutar */;
else
   /* a ejecutar */;

Primero que nada devemos saber que la condicion a la que responde el if es un valor boleano,el cual si es true se ejecuta,por ejemplo:


1
2
if (true)
   System.out.println("Es true");

Aquí cabe clarar que esto es inútil:


1
2
3
4
if (true)
   System.out.println("Es true");
else
   System.out.println("Es false");


Ya que true es un valor inmutable y el else sale sobrando.

Algo mas acorde seria:


1
2
3
4
5
6
void ver(boolean x){
   if (x)
   System.out.println("Es true");
   else
   System.out.println("Es false");
}

Ya que podriamos hacer en el main o donde llamaramos esa funcion:

ver(true);

o

ver(false);

Bien esto no solo va a valores falsos o verdaderos ya definidos,podemos crear nuestra logica boleana,por ejemplo:

Es cierto que 1 es mayor que 0,si.

Es cierto que 10 es menor a 100,si.

Es cierto que 10 es igual a 10,si.

Es cierto que 10 no es igual a 10,no.

Como se ve eso en Java?

Lo primero es comprender los operadores de condición:


Simbolo Significado Ejemplo Resultado
== Igual que 0 == 0 true
=! No igual que 1 =! 1 false
< Menor que 10 < 2 false
> Mayor que 3 > 2 true
<= Menor o igual que 2 <= 2 true
>= Mayor o igual que 2 >= 1 true

Esa tabla representa las comparaciones,si quisiéramos comparar Strings podríamos usar equals,pero lo vemos mas abajo:

Vamos a ver un ejemplo de como trabaja la comparación numérica con dos caminos a tomar:


1
2
3
4
5
6
7
int x = 10;
int y = 1;

if (x > y)
   System.out.println("x es mayor");
else
   System.out.println("y es mayor");


O


1
2
3
4
if (x < y)
   System.out.println("y es mayor");
else 
   System.out.println("x es mayor");


Vamos a ver un ejemplo que a la vez ayude al aprendizaje:

Enlace



Solo copien y ejecuten:

El código no  es lo importante solo la ejecución en próximos tutoriales comprenderemos bien ese código.

Para comparación de cadenas usamos una función de cadena llamada equals o compareTo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
String s = "Hola";

if (s.compareTo("Hola"))
   System.out.println("Verdadero");
 
if (s.equals("Hola"))
   System.out.println("Tambien verdadero");
 
if (s.compareTo("hola"))
   System.out.println("Verdadero");
else
   System.out.println("Falso"); // esta vez se ejecuta esto

if (s.compareToIgnoreCase("hola")) // No importan las mayusculas o minusculas
   System.out.println("Verdadero");
else
   System.out.println("Falso"); // esta vez no se ejecuta esto


Si no sabemos el resultado de una comparación basado en dos posibles resultados podemos usar else if:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
int x = 10;

if (x == 1) {
 System.out.println("Se ejecuta esto si x es 1");
} else if (x < 10) {
 System.out.println("Se ejecuta esto si x es menor a 10");
} else if (x == 10) {
 System.out.println("Se ejecuta esto si x es igual a 10");
} else {
 System.out.println("Se ejecuta esto si no es ninguno de los anteriores");
}


Si se ejecuta uno ya no pasa al siguiente.

De momento eso es todo :D.
Leer más...

viernes, 19 de octubre de 2012

Tutorial perl desde Unix estructuras selectivas


Bueno vamos a comenzar rápido con esta parte que es la tres de estos tutoriales sobre perl,como dije en la entrada pasada existen distintos tipos de variables y la única que hemos visto son las escalares, después veremos hashes,arrays,etc pero de momento con lo que hemos aprendido basta para aprender como funcionan las estructuras selectivas osea (if,else y elsif)

En perl al igual que en otros lenguajes de programación existen una parte del programa que es una estructura selectiva,que verifica la parte del programa y decide que hacer.

 por ejemplo

En texto plano en español,seria así (+ o -) lo que pensaría el programa del código que mostrare a continuación

imprimir Como te llamas,si es el nombre demianx86 abriré lo que estoy programado para hacer

Código

#!/usr/bin/perl

my $nombre="demianx864"; # Cambia tu nombre
print "Teclea tu nombre para continuar : ";
my $user=<STDIN>;
chop($user);
if ($user == $nombre) {
print ("Bienvenido\n");
}


Lo explico con #

#!/usr/bin/perl

my $nombre="demianx864"; # Definimos el nombre(nuestro nombre)
print "Teclea tu nombre para continuar : "; # Imprimimos esto para que nos ayude de guia
my $user=<STDIN>; # Llamamos la entrada del teclado
chop($user); # Limpiamos la entrada, como vimos en la entrada anterior
if ($user == $nombre) { # Verificamos si coninciden los nombres
print ("Bienvenido\n"); # Si coincide se imprime esto o el comando que haya 
}

Como pueden ver no funciona,por ejemplo escriban lo que escriban dirá bienvenidos,¿esto a que se debe?

bueno se los dejaría de tarea,pero no podemos continuar si no lo explico

Lo que pasa es que hay dos cuestiones aquí

1.Estamos usando un comparador de caracteres numéricos (==) que compara los caracteres y los usa como un solo dato(como cadena,texto) escribamos lo que escribamos sera un solo valor (texto) pero si escribimos números ahí si diferencia(por que se comparan como números)

Los operadores numéricos son estos

Operador Descripción

<  menor que
>  mayor que
==  igual que
<=  menor o igual que
>=  mayor o igual que
!=  no igual a

Los operadores de cadenas son estos

Operador   Descripción

lt   menor que
gt   mayor que
eq   igual a
le   menor o igual que
ge         Mayor o igual que
ne   No igual a

Así que sabiendo eso, así seria el script

#!/usr/bin/perl

my $nombre="demianx864";
print "Teclea tu nombre para continuar : ";
my $user=<STDIN>;
chop($user);
if ($user eq $nombre) { # Así reconocerá sean números o letras la longitud e igualdad
print ("Bienvenido\n");
}

2.La cuestión numero dos es que el script no piensa esto(si no es el nombre que hago) así que le decimos que hacer si el nombre no es igual con el comando else

La estructura de un script con else seria así

If (condición) { # Si se cumple la condicion
comandos a ejecutar
}
else { # De lo contrario
comandos a ejecutar
}

Y implementados en nuestro ejemplo luciría así


#!/usr/local/bin/perl

my $nombre="demianx864";
print "Teclea tu nombre para continuar : ";
my $user=<STDIN>;
chop($user);

if ($user eq $nombre) {
print ("Bienvenido\n");
}
else {
print "Quien rayos eres largo de aqui |:(\n";
}

Bien hay otra cosa que se llama elsif que seria así

if (condicion) { # Si se cumple esta condicion
secuencia de procesos
}
elsif (condicion) { # Si se cumple esta condicion
secuencia de procesos
}
elsif (condicion) { # Si se cumple esta condicion
secuencia de procesos
}
elsif (condicion) { # Si se cumple esta condición y así todos los elsif que quieras
}
else (condicion) { # De lo contrario
secuencia procesos
}

Por ejemplo lo podrías usar así



en nuestro script

#!/usr/local/bin/perl

system("clear");
system("sleep 1");

my $nombre="demianx864";
my $invitado="invitado";

print "Usuario : ";
my $user=<STDIN>;
chop($user);

if ($user eq $nombre) {
print ("Bienvenido $nombre\n");
}
elsif ($user eq $invitado) {

print ("Binvenido a la sesion de $invitado\n");
}
else {
print "Usuario incorrecto largo de aqui |:(\n";
}


Como vieron añadí

system("clear");
system("sleep 1");



Estos son comandos del sistema que llama perl, después los veremos, solo que use esto para hacer un trabajo mas limpio, también los usaremos de ahora en adelante,para que se vea mejor nuestros pequeños scripts,de momento eso es todo.


Leer más...

sábado, 25 de agosto de 2012

Curso scripting bash condicionales (If-Then)

No han tenido ganancias(comentarios,muchas visitas) mis tutoriales de bash :(,sera porque hoy en dia ya no usan bash, o porque vamos en lo mas simple,o porque no los hago bien |:(

Bueno,los voy a seguir poniendo pero como estoy enseñando poco en cada entrada,le dedicare una a cada parte de bash,pero al final,hare un tipo sitemap con todas las entradas de programacion bash.

Ya si no funciona los cancelo como los de python,que no tuvieron ni un solo comentario :(

Bueno esta es la parte numero 3

Parte 1


Parte 2

Y en esta ocasión veremos


Condicionales (if,fi,then,else,elif)

Bash es un lenguaje de programación como cualquier otro,y igual que en otro lenguaje incluye los condicionales para poder ejecutar una fracion de codigo si este se cumple o ejecutar otra fraccion de codigo si no se cumple.

Igual que en otros

Bueno en bash los condicionales se definen de esta manera

#!/bin/bash
# Condicion
if [ condicion1 = condicion2 ]
then
codigo a ejecutar
exit 0
fi

Explicación

if es si del ingles,en texto plano y en español seria:

 si la condicion 1, es igual a la condicion 2, ejecuta el condigo de abajo

Pero esto va mas aya ya que requiere el valor then para cerrar la condición if y ademas el valor exit 0 para cerrar el código,y el valor fi para cerrar toda la condicion desde que inicia if


#!/bin/bash
# Condicion
if [ condicion1 = condicion2 ] # Evaluando la condición(debe ir entre [])
then # Se cierra la evaluación
codigo a ejecutar # Codigo a ejecutar si se cumple
exit 0 # Cerrar cuando se cumpla
fi # Se cierra toda la condicion

Ahora un ejemplo de esto mezclado con las variables de la entrada pasada, seria así:


#!/bin/bash

A=1
B=2

if [ $A = $B ]

then

        echo 'Si es'

        exit 0

fi

Cópienlo y ejecútenlo como vimos en la entrada uno

Al ejecutarlo no hará nada ya que no se cumplió,me explico:

#!/bin/bash

# Definiendo Variables

A=1
B=2
# No son iguales
if [ $A = $B ] # Juzgando las condiciones( es A igual a B),el signo $,es para llamar la variable
# No son iguales

then

        echo 'Si es'

        exit 0

fi

Como vimos no son iguales A y B así que no hará nada porque lo que le indicamos, lo indicamos para que lo hiciera si se cumplía(y no se cumplió)

Ahora copien y ejecuten este

#!/bin/bash

# Definiendo Variables

A=1
B=1
# No son iguales
if [ $A = $B ] # Juzgando las condiciones( es A igual a B),el signo $,es para llamar la variable
# Si son iguales

then

        echo 'Si es igual A y B'

        exit 0

fi

¡Que diferencia!

Ahora,como vimos en el primer ejemplo no se ejecuta nada porque no se cumple la condición y en el segundo si se ejecuta porque se cumple la condición,¿pero como hacer para que se ejecute un código si se cumple y otro si no se cumple?

La respuesta es doble ya que hay dos respuestas

1.Sacar el código dela condición if fi como se hace en javascript y este se ejecutara al no pertenecer al codigo

Por ejemplo(Cópienlo y ejecútenlo):

#!/bin/bash

# Definiendo Variables

A=1
B=3

if [ $A = $B ] # Juzgando las condiciones( es A igual a B),el signo $,es para llamar la variable
# No son iguales

then

        echo 'Si, es igual A y B'

        exit 0

fi # Termina la condición

# Ahora se ejecuta esto

echo 'No es igual'

exit

¿Pero si lo queremos en la misma condicion?

Esa respuesta es la misma que la segunda opción y es usar el comando else,que es sino, en lugar,etc

Por ejemplo en texto plano seria:

¿A y B son iguales?,(if)si son ejecuta esto echo 'Si es igual A y B' si no (else) ejecuta esto echo 'No son iguales'

Ejemplo(Copia y Ejecuta)

#!/bin/bash

# Definiendo Variables

A=1
B=3

if [ $A = $B ] # Juzgando las condiciones( es A igual a B),el signo $,es para llamar la variable
# ¿Son iguales? No son iguales

then

        echo 'Si es igual A y B'

        exit 0

# Ahora se ejecuta esto

else # Si no

echo 'No es igual'

exit

fi # Termina la condición

Así  de fácil

Vamos a ponerle mas emocion a esto con la interaccion de nosotros,vamos a usar el comando read para comunicarnos con el script
Por ejemplo si queremos jugar un poco vamos a usar el comando read para darle un valor a la variable desde la misma consola al momento de ejecutarla

Ejemplo(Copia y ejecútalo):


#!/bin/bash

# Definimos nuestro nombre y lo guardamos en una variable
tu_nombre="Escribe tu nombre" # Edita esta parte

echo 'Como te llamas'
# Nos pregunta
read nombre
# Si lo que escribas es igual a la variable con tu nombre...
if [ $nombre = $tu_nombre ]
then
echo 'Bienvenido' # Se ejecuta esto
exit 0
else # Si no...
echo 'Largo de aquí' # Se ejecuta esto
fi


Ahora, no solo existe if y else también existe un punto medio llamado elif,que lo podríamos usar de esta manera,por ejemplo

#!/bin/bash
echo 'Adivina el numero'
echo 'Una pista esta entre el 1 y el 10'
read numero

if [ $numero = 6 ]
then
echo 'Acertaste'
exit 0
elif [ $numero = 5 ]
then
echo 'Casi, intenta de nuevo'
else
echo 'No,intenta de nuevo'
fi


Como vemos para intentar de nuevo,necesitamos ejecutar de nuevo el código una y otra vez,para que no suceda esto tenemos que hacer uso de un bucle,pero esto lo veremos después

Aquí una muestra de lo que veremos mas adelante(copien y ejecuten)






#!/bin/bash
echo 'Quieres ver el calendario'

function Calendario

{

      cal

}

function No

{

     echo 'Entonces vete a visitar Tiempo de Tux'
   
}

read opcion

case $opcion in

      si|SI)

         Calendario

      ;;

      no|NO)

         No
      ;;


       *)

         echo 'Esa no es una opcion'


  esac



Leer más...