viernes, 13 de julio de 2012

03.01 If

Estatuto if
Este estatuto nos sirve para realizar alguna(s) instrucción(es) en vez de otra(s) de acuerdo a alguna condición que resulte verdadera, analizaremos la sintaxis de las decisiones en Java y después utilizaremos algunos ejemplos.
Sintaxis
      if ( condición
              estatuto;
       else                                            // la parte else es opcional
              estatuto;        
En caso de requerir más de un estatuto es necesario usar llaves.
      if ( condición ) {              bloque de estatutos;
      
}
       else  {                                          // la parte else es opcional
              bloque de estatutos;        
       }
Una condición es la comparación de una variable/constante/expresión-numerica contra otra variable/constante/expresión-numérica. A este tipo de condición se le llama condición simple , la condición compleja se manejará en la ultima unidad. La condición simple utiliza los siguientes operadores de relación:


Operadores Relacionales
Los operadores relacionales que tiene Java son :
Operador en Java
Significado
==
  Igual
!=
  Diferente
<
  Menor que
>
  Mayor que
<=
  Menor o igual que
>=
  Mayor o igual que
Un ejemplo puede ser que X sea igual a 10 la condición quedaría como
If (x == 10) …..
Otro podría ser checar si el área del círculo con radio r es menor a 100
If (Math.PI() * Math.pow(r, 2) < 100) …….
Etc.
Ejecución del if
La estructura if (sin else), ejecuta el estatuto solo cuando la condición es verdadera; en caso de que sea falsa brinca el estatuto
 (o estatutos en caso de tener más de uno entre llaves)

La estructura de selección if / else ,  ejecuta la(s) acción(es) después de la parte if cuando la condición es verdadera; en caso de
 que sea falsa ejecuta la(s) acción(es) que está(n) después del else.
Ejemplo
     if (promedio >= 70)
          t.setText(" Aprobado");
     else
          t.setText("Reprobado");
     
if´s anidados
Se dice que hay if anidados cuando existe un if/else dentro de otra estructura if/else
Ejemplo:
   Determinar si un número es positivo, cero o negativo.
       if (num > 0)
          t.setText("El número es positivo");
       else if (num == 0)
           t.setText("El número es cero");
       else
           t.setText("El número es negativo");
El applet quedaria como sigue:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
// <applet width="200" height="200" code="AppletDecisiones1"></applet>
public class AppletDecisiones1 extends Applet implements ActionListener {
   Label l1, l2;
   TextField t1, t2;
   Button b;

   public AppletDecisiones1() {
      l1 = new Label("Numero");
      t1 = new TextField(6);
      l2 = new Label("Resultado");
      t2 = new TextField(18);
      b = new Button("Calcula");
      add(l1);
      add(t1);
      add(l2);
      add(t2);
      add(b);
      b. addActionListener(this);
   }
   public void actionPerformed(ActionEvent ae) {
      int num = Integer.parseInt(t1.getText());
      if (num > 0)
         t2.setText("El número es positivo");
      else if (num == 0)
         t2.setText("El número es cero");
      else
         t2.setText("El número es negativo");
   }
}

El applet en ejecución se muestra como sigue:
En el applet anterior hicimos uso del constructor TextField(entero) donde entero es un número entero para definir el número de espacios que se quieren usar en el campo de texto creado.

Si tenemos el siguiente fragmento de código:
      if (condición 1)
          if (condición 2)
               estatuto;
          else               // este else pertenece al if de la condición 2, pues se asocia al if más cercano
               estatuto;
Y queremos que el else pertenezca al primer if debemos poner {} para determinar donde termina el segundo if:
      if (condición 1)
      {
         if (condición 2)
               estatuto;
      }
      else               // con el uso de llaves cerramos el if anidado y el else
         estatuto;       // pertenece al primer if
 
Ejemplos de Programas
A continuación tendrás algunos ejemplos de programas en Java:
Ejemplo I: Programa que calcula la energía necesaria para la combustión de un compuesto dada la cantidad de átomos
"x" y "y" de dos diferentes elementos, de acuerdo a la siguiente fórmula:
               4x + 3x2y - 2y si x > 0 , y >= 0
e(x,y)  =   x2 - 4(y - x) + y2 si x < 0 , y >= 0
               x2 + y + y (x- 2) en cualquier otro caso
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.lang.Math;
// <applet width="200" height="200" code="AppletDecisiones2"></applet>
public class AppletDecisiones2 extends Applet implements ActionListener {
   Label l1, l2, l3;
   TextField t1, t2, t3;
   Button b;

   public AppletDecisiones2() {
      l1 = new Label("VALOR x");
      t1 = new TextField(6);
      l2 = new Label("VALOR y");
      t2 = new TextField(6);
      l3 = new Label("Resultado");
      t3 = new TextField(6);
      b = new Button("Calcula");
      add(l1);
      add(t1);
      add(l2);
      add(t2);
      add(l3);
      add(t3);
      add(b);
      b. addActionListener(this);
   }
   public void actionPerformed(ActionEvent ae) {
      double x = Double.parseDouble(t1.getText());
      double y = Double.parseDouble(t2.getText());
      double res;
      if (y >= 0)
         if ( x > 0)
            res = 4 * x + 3 * Math.pow (x,2) * y - 2 * y;
         else
            res = Math.pow(x,2) - 4* (y - x) + Math.pow (y,2);
      else
         res = Math.pow (x,2) + y + y * (x-2);
      t3.setText("" + res);
   }
}

Ejemplo II: Programa que lee 3 números enteros diferentes y los despliega de mayor a menor.
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

// <applet width="200" height="200" code="AppletDecisiones3"></applet>
public class AppletDecisiones3 extends Applet implements ActionListener {
   Label l1, l2, l3,l4;
   TextField t1, t2, t3,t4;
   Button b;

   public AppletDecisiones3() {
      l1 = new Label("VALOR 1");
      t1 = new TextField(6);
      l2 = new Label("VALOR 2");
      t2 = new TextField(6);
      l3 = new Label("VALOR 2");
      t3 = new TextField(6);
      l4 = new Label("Resultado");
      t4 = new TextField(16);
      b = new Button("Calcula");
      add(l1);
      add(t1);
      add(l2);
      add(t2);
      add(l3);
      add(t3);
      add(b);
      add(l4);
      add(t4);
      b. addActionListener(this);
   }
   public void actionPerformed(ActionEvent ae) {
      double a = Double.parseDouble(t1.getText());
      double b = Double.parseDouble(t2.getText());
      double c = Double.parseDouble(t3.getText());
      double res;
      if (a >= b)
         if ( a >= c)
            t4.setText(""+ a + " es el mayor");
         else
            t4.setText(""+ c + " es el mayor");
      else
         if ( b >= c)
            t4.setText(""+ b + " es el mayor");
         else
            t4.setText(""+ c + " es el mayor");
   }
La aplicación ejecutando funcionaría como se observa:

No hay comentarios:

Publicar un comentario en la entrada