Capitulo 2 – Programando con las sentencias de Java (Parte I)

Buenas tardes, hoy comenzaremos con lo que sería el Capitulo 2 ( El capitulo 1 es lo que había hasta ahora), el cual se empieza a centrar en partes mas prácticas de todas las estructuras y sentencias que se usan en Java al programar.

En esta entrada veremos los assignment statements y comenzaremos con los conditional statements. Visto un pequeño indice de lo que daremos podemos comenzar a explicar un poco todo este asunto de sentencias.

Las aplicaciones están compuestas por diferentes sentencias o declaraciones. Son estas declaraciones las que permiten el funcionamiento de la secuencia apropiada  en la ejecución y la funcionalidad que debe ocurrir.

En esta tabla podemos ver una tabla cona lgunos ejemplos de declaraciones o sentencias que tiene java, entre otras muchas.

Statement Name Definición
The assert statement Usado para determinar si el código funciona como se esperaba.
The break statement Usado para salir del cuerpo de un switch o un bucle.
The case statement Parte de la sentencia swtch para estudiar los casos cuando el valor coincide con la condición del switch.
The continue statement Usado para terminar con una iteración que se está llevando a cabo en un bucle while, do-while o for y proseguir con la siguiente iteración.
The while statement Usado para una iteración basada en una condición.
The do-while statement Usado para una iteración basada en una condición. El cuerpo del do-while se ejecuta al menos una vez.
The empty statement Usado para propósitos triviales donde no se requiere funcionalidad.
The expression statements Usado para evaluar expresiones.
The for loop statement Usado para iteraciones. Sus componentes principales tienen una parte de inicialización, otra de condición y otra de actualización
The Enhanced for loop statement Usado para la iteración a través de objetos iterables o arrays.
The if statement Usado para ejecutar sentencias condicionales.
The if-then statement Usado para la ejecución de sentencias condicionales, proporcionando varias condiciones.
The if-then-else statement Usado para la ejecución varias sentencias condicionales, y cuando todas estas fracasan entra en otra condición
The return statement Usado para salir de un método y retornar un valor específico.
The switch statement Usado para derivar el código basado en diferentes condiciones.
The synchronized statement Usado para el control de acceso con hilos.
The throw statement Usado para lanzar una excepción.
The try-catch statement Usado para el manejo de excepciones.

Entendiendo las declaraciones fundamentales

-Descripción, comparación y comtraste de los 3 tipos de declaraciones fundamentales: Asignación, Condición e Iteración, y una descripción de un algoritmo, seleccionar el tipo apropiado de sentencia para diseñar el algoritmo

El lenguaje de programación de Java contiene una gran variedad de declaraciones. Aunque los diferentes tipos de declaraciones sirven para diferentes propósitos.
Los que veremos en este capítulo podremos agruparlos en cuatro categorías principales.

  • Expression statements
  • Conditional statements
  • Iteration statements
  • Transfer of control statements

Las expression statements se usan para la evaluación de expresiones. La únicaexpresión que usaremos en estas secciones será la de asignación. Las assignment statements (Sentencias de asignación) permiten la asignación de valores a variables. Las Conditional Statements (Sentencias condicionales), asisten al flujo de control cuando se necesita evaluar una decisión en la ejecución del programa y este debe seguir un camino en base a esa evaluación. Entre estas podemos encontrar el if, if-then, if-then-else y el switch. Los Iteration Statements (sentencias de iteración) proveen soporte para crear bucles en bloques de código, y se incluyen aquí los bucles for, while y do-while.

El objetivo de este capítulo es conseguir el conocimiento de cuando y como son necesarios los diferentes tipos de statements en Java.
En las sigueintes secciones veremos:

  • Assignment statements
  • Conditional statements
  • Iteration statements

-Assignment statements

Son consideracos como expression statements. Primero discutiremos que es un expression statement.
Los expressions statement trabajan con expresiones. Las expresiones en java son consideradas para todo quello que tiene un valor o es reducido a otro valor. Tipicamente, las expresiones evalúan tipos de datos primitivos, como en el caso de añadir dos numeros (por ejemplo, (1+2)) o la concatenación de cadenas entre sí con el operador de concatenación (+). Todas las expresiones se pueden usar como statements, el úinico requisito es que terminen con ;

-The Assignment Expression Statement

Los assignment expression statement, comúnmente conocidos como assignment statements deben terminar con ;. Tener la habilidad para guardar información en variables proveen las caracteristicas principales del uso de las aplicaciones informáticas.

Expression Statement Expression Statement Example Chapters
Assignment variableName=7; This chapter
Pre-increment ++variableName; Chapter 4
Pre-decrement –variableName; Chapter 4
Post-increment variableName++; Chapter 4
Post-decrement variableName–; Chapter 4
Method call methodName(); Chapter 5
Object creation new Class(); Chapter 4

El uso general de una asignación es:

variable=value;

Vamos a declarar una variable de tipo entero (int) y vamos a ver como asignamos un valor. Para esto, primero diferenciaremos los 3 elementos clave en una asignación.

  • A la izquierda encontraremos la variable que se asociará en la memoria y el tipo de dato necesario para guardar el valor.
  • A la derecha se encuentra el valor literal. Si hay una expresión a la derecha, como (1+2), esta se evaluará a su literal antes de ser asignada.
  • Finalmente el símbolo = estará entre la variable y el valor.
int variableName; //Declaración de la variable
variableName=100; //Asignación de un valor a la variable

Mientras que la aplicación esté ejecutandose y el objeto en cuya variable siga existiendo, el valor de la variable seguirá siendo el valor asignado, a no ser que le cambiemos el valor con otra expresión.

Intentar guardar un literal inválido en un tipo de variable primitivo dará un error de compilación

-Conditional Statements

Los conditional statements son usados cuando hay una necesidad de determinar el flujo de la aplicación basado en condiciones. Se incluyen las sentencias if, if-then, if-then-else y switch.

Formal Name Keywords Expression Types Example
if if
else (Optional)
boolean if(value==0){}
if-then if
else if
else if (Optional)
boolean if(value==0){}
else if (value==1){}
else if (value){}
switch switch
case
default(Optional)
break(Optional)
char,byte, short, int, Character, Byte, Short, Integer, enumeration types switch(100){
case 100:break;
case 200:break;
case 300:break;
default:break;
}

El uso general de la sentencia if es:
if(expresion)
sentenciaA;
else
sentenciaB;

En el siguiente ejemplo veremos una estructura básica de un bloque if.
Aqui veremos si una persona (isFisherman) es un pescador, y si es la expresión asociada en la sentencia if se evaluará a true. Al ser true, el valor de isFishingTrip ser´amodificado a true. No se hará nada si isFisherman se evalúa como false.

boolean isFisherman=true;
boolean isFishingTrip=false;
if(isFisherman){
   isFishingTrip=true;
}

Ahora vamos a cambiar el código un poco.Aquí podremos ver si se hará el viaje de pesca si hay mas de 1 pescador, como se evalúa en la expresión (fishermen>=1)
Vemos que si hay “uno o mas pescadores” será true y se ejecutará un bloque de sentencias.

int fishermen=2;
boolean isFishingTrip=false;
if (fisherman>=1){
  isFishingTrip=true;
  System.out.println("Vamos a pescar!");
}

La salida por pantalla será “Vamos a pescar!”

The if-then Conditional Statement

Se conoce como if else if. Es usado cuando se evalúan múltiples condiciones para cambiar el flujo del programa según las decisiones.
if(expressionA)
statementA;
else if(expressionB)
statementB;

En este segmento de código, las condiciones son evaluadas según el apropiado pyramidSinker por peso.

int pyramidSinker=3;
System.out.print("A pyramid sinker that weights " + pyramidSinker + "ounces is ");
if(pyramidSinker==2){
  System.out.prin("used for a slow moving tide ");
}else if (pyramidSinker==3){
  System.out.print("used for a moderate moving tide");
}else if (pyramidSinker==4){
  System.out.printn("used for a fast moving tide");
}

En este caso la salida será “A pyramid sinker that weights 3 ounces is used for a moderate moving tide”

The if-then-else Conditional Statement

Como las sentencias if y if-then, todas las expresiones deben ser evaluadas a true o false. La única diferencia en el if-then-else es que el código que no se cumpla caerá a un bloque else independiente cuando la expresión falla al retornar true para cualquier condición.
Su uso general:
if(expressionA)
statementA;
else if(expressionB)
statementB;
else if(expressionC)
statementC;


else
statementZZ;

En el siguiente código, el método getCastResult() representa los esfuerzos de un pescador lanzando un sedal en el oceano. El valor de retorno será un String con el calor “fish”, “shark” o “skate” y el valor será evaluada con el if o else if. Este código muestra un escenario del uso de if-then-else.

...
private FishingSession fishingSession=new FishingSession();
public void castForFish(){
  fishingSession.setCatch();
  String resultOfCast=fishingSession.getCastResult();
  if(resultOfCast.equals("fish")){
    Fish keeperfish=new Fish();
    keeperFish= fishingSession.getFishResult();
    String type=keeperFish.getTypeOfFish();
    System.out.println("Wahoo!keeper fish: " + type);
  }else if(resultOfCast.equals("shark")){
    System.out.println("Need to throw this one back!");
  }else if (resultOfCast.equals("skate")){
    System.out.println("Yuck. Leo can take this one off the hook!");
  }else {
    System.out.println("Darn, no catch");
  }
}

Hasta aquí lo referente a if, if-then e if-then-else y unos ejemplos de su uso para ver como funcionan.

He visto bien no traducir todo literalmente al castellano, pues son expresiones que en el castellano quedan bastante mal, y el haber estudiado algo referente a la informática y a la programación, el nivel técnico de inglés debe de ser tirando a medio alto, por tanto no creo que sean dificiles de entender para los que seamos del gremio.

Como siempre, cualquier objeción o aporte será bienvenido.

Saludos!!