jueves, 2 de junio de 2016

Capítulo 34. Java: Como utilizar los operadores de comparación, cómo comparar cadenas. Instrucción IF, Switch


Diario de un programador día 78

Operadores de comparación.

Los operadores utilizados en java son los siguientes:

< menor que
> mayor que
<= menor o igual
>= mayor o igual
== igual a.
!= distinto a.

INSTRUCCION IF

La sintaxis para esta instrucción es la misma que se utiliza en php (y también para C/C++). Así que no habrá mucha información nueva que aportar más que mostrar un ejemplo:

if (condicion) {
    instrucciones;
}
else{
    instrucciones;
}

Como se puede apreciar, la condición a evaluar va encerrada entre paréntesis. Luego, las instrucciones que se ejecutarán en caso de que la condición sea verdadera o falsa (else) van dentro de un bloque de llaves { }.

Ejemplo:

import java.util.Scanner;
public class Curso {
  public static void main(String []args){
    Scanner ingreso = new Scanner(System.in);
    int a, b;
      System.out.print("Ingresa el valor de a: ");
      a = ingreso.nextInt();
      System.out.print("Ingresa el valor de b: ");
      b = ingreso.nextInt();
     
      if(a > b){
          System.out.println("A es mayor que B");
      }
      else{
          System.out.println("B es mayor que A");
      }
  }

}


Lo que hace este código es simplemente solicitar dos números. El primero solicita el valor de A y el segundo solicita el valor de B. Luego, utilizando la instrucción IF se comprueba cuál es el mayor de ambos.

Comparar cadenas

Comparar cadenas no es lo mismo que comparar números, no sirve el operador == .Para saber por ejemplo si la palabra hola es igual a hola, en otras palabras, escribir esto NO funciona

cadena1 = "hola";
cadena2 = "hola";
if (cadena1 == cadena2)....

No, no, no, no funciona así con las cadenas. Yo en un principio pensé que si se podía y tardé bastante en encontrar la solución. La solución para comparar cadenas es el método equals, el cual se utiliza así: variable1.equals(variable2) Lo que esto dice es más o menos "variable1 es igual a variable2" Si yo quisiera en caso contrario decir que "variable1 es distinta a variable2" entonces tendría que agregar un signo ! al principio, quedando así: !variable1.equals(variable2)

Ejemplo:
public class compara{
  public static void main(String[]args){
   
    String cadena1 = "hola";
    String cadena2 = "hola";
   
    if(cadena1.equals(cadena2)){
        System.out.println("son iguales");
    }
    else{
        System.out.println("no son iguales");
    }
  }//fin main   
}//fin class


INSTRUCCION SWITCH

Esta instrucción es como una alternativa a la instrucción if y se usa principalmente cuando en un programa se tienen que escoger entre varias opciones, como puede ser un menú. Entonces, para no tener que insertar varias instrucciones if una tras otra, es que se utiliza esta instrucción.
Su sintaxis es así:

variable = 1
switch (variable){
    case 1:
        ejecutar instrucciones;
        break;
    case 2:
        ejecutar instrucciones;
        break;
    default:
        ejecutar instrucciones;
        break;
}

Al igual que la instrucción IF, la instrucción switch ejecutará una determinada acción en caso de que la variable sea verdadera o se cumpla. En este caso se muestra que la variable vale 1, por lo tanto se ejecutará el "case 1" conjuntamente con todas sus instrucciones. Notar y no olvidar colocar los 2 puntos (:) al final de la instrucción "case". Al final de cada bloque "case" se debe colocar la instrucción "break", que sirve para salir de la instrucción switch. Si no se coloca el break, se seguirán ejecutando todas las instrucciones case que siguen a continuación, o sea el case 2, 3, etc. Más abajo aparece la instrucción "default". Esta se ejecutará en caso que la variable sea distinta a todos los otros case. Por ejemplo, si tengo un menú con tres opciones, algo así:

opcion 1
opcion 2
opcion 3

Y le pido al usuario que ingrese el nombre de alguna opción. En caso de que el usuario ingrese una opción que no corresponde, yo puedo indicar mediante la instrucción "default" que la opción ingresada no existe o no es válida.  Funciona de manera similar a la instrucción "else".
  
Ejemplo:

import java.util.Scanner;
public class Menu{
  public static void main(String[]args){
    Scanner ingreso = new Scanner(System.in);
    int opcion;
   
    System.out.println("Opcion 1");
    System.out.println("Opcion 2");
    System.out.println("Opcion 3");
   
    System.out.print("\nIngresa una opcion: ");
    opcion = ingreso.nextInt();
   
    switch(opcion){
      case 1:
        System.out.println("Has ingresado la opcion 1");
        break;
      case 2:
        System.out.println("Has ingresado la opcion 2");
        break;
      case 3:
        System.out.println("Has ingresado la opcion 3");
        break;
      default:
        System.out.println("Ninguna opcion es valida");
        break;
      
    }//fin switch
  }//fin main   
}//fin class



Ejercicios.

Escribir en java los siguientes programas:

A)
Solicitar al usuario el ingreso de su edad y si el numero ingresado es igual o mayor a 18, mostrar por pantalla "Eres mayor de edad", en caso contrario, mostrar "Eres menor de edad"



B)

Solicitar al usuario el ingreso de un número y mostrar por pantalla si el número es par o impar



C)

Declarar una variable y asignarle la cadena "user". Solicitar al usuario que ingrese su nombre de usuario. Si el nombre de usuario es igual a "user" mostrar por pantalla "Bienvenido", de lo contrario mostrar "Usuario no existe"



Espero que se entienda y si hay dudas sobre la instrucción IF, siempre se puede revisar el apartado de small basic, donde di una introducción más detallada en los capítulos 7 y 8. (Small Basic) No lo hago porque es materia ya enseñada y sería volver a repetir lo mismo. Como he dicho, la idea es simplemente mostrar la sintaxis y si hay algo nuevo, entonces lo explicaré lo más detallado posible. Hasta la próxima.

Gustavo J. Cerda Nilo
Enero 2016, última actualización Junio 2016



No hay comentarios:

Publicar un comentario

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...