Está en la página 1de 9

TEMA 3.

SELECCIÓN

SELECCIÓN SIMPLE: sentencia if


La sentencia if se usa para decidir si un determinado bloque de instrucciones se ejecutará o no; es
decir, en una selección simple solo se ejecuta un bloque de instrucciones cuando la condición es
verdadera (true), si la condición es falsa (false), no se ejecuta el bloque.

Sintaxis:

if (condición)
{
Instrucciones;
}

La condición debe ser una expresión lógica que después de la evaluación será verdadera o
falsa. if acepta valores booleanos: si el valor es verdadero o el resultado de la evaluación de la
expresión (condición) es verdadero, se ejecutará el bloque de instrucciones debajo de él.
NOTA: Si no proporcionamos las llaves ‘{‘ y ‘}’ después del if (condición), entonces de forma
predeterminada se considera como bloque de instrucciones a la instrucción inmediata.

Ejemplo:

if (condicion)
instrucción1;
instrucción2;

En el ejemplo se considera que solo la instrucción1 forma el bloque de instrucciones del if y solo
se ejecutará cuando la condición sea verdadera.

Selección doble : if-else


Esta instrucción se utiliza cuando existen 2 alternativas en la solución del problema, en este caso
la instrucción else se usa con la instrucción if para ejecutar un bloque de código cuando la
condición es falsa.
Sintaxis:

if (condición)
{
// Ejecuta este bloque si la condición es verdadera
}
else
{
// Ejecuta este bloque si la condición es falsa
}
Ejemplo:

class Ejemplo
{
public static void main(String args[])
{
int i = 20;
if (i < 15)
System.out.println("Soy menor que 15");
else
System.out.println("Soy mayor de 15");
}
}

Salida:

Soy mayor de 15

if Anidado (selección compuesta)


Un if anidado es una declaración if que se deriva de otro if o else.
Sintaxis:

if (condicion1)
{
// Este bloque se ejecuta cuando condicion1 es verdadero
if (condition2)
{
// Este bloque se jecuta cuando condicion2 es verdadero
}
}

En este ejemplo tenemos una sentencia if con su bloque de instrucciones donde el bloque
corresponde a otra instrucción if con su bloque.
Ejemplo2:

class Ejemplo2
{
public static void main(String args[])
{
int i = 5;
if (i == 5)
{
if (i < 15)
System.out.println("soy menor que 15");
if (i < 12)
System.out.println("yo también soy menor que 12");
else
System.out.println("soy mayor que 12");
}
}
}
Salida:

soy menor que 15


yo también soy menor que 12

import java.util.*;
class Ejemplo3
{
public static void main (String[] args)
{
int n;
Scanner T=new Scanner(System.in);
System.out.println("INGRESE UN NUMERO");
n=T.nextInt();
if(n>0)
System.out.println("EL NUMERO "+n+" ES MAYOR QUE CERO");
else
if(n<0)
System.out.println("EL NUMERO "+n+" ES MENOR QUE CERO");
else
System.out.println("EL NUMERO "+n+" ES IGUAL A CERO");

}
}

Salida
INGRESE UN NUMERO
8
EL NUMERO 8 ES MAYOR QUE CERO
switch-case
La instrucción switch es una declaración de bifurcación de múltiples vías (selección múltiple).
Proporciona una forma sencilla de enviar la ejecución a diferentes partes del código en función
del valor de la expresión.

Sintaxis:

switch (expresión)
{
case valor1:
bloque1;
break;
case value2:
bloque2;
break;
.
.
case valorN:
bloqueN;
break;
default:
bloqueDefault;
}

 La expresión puede ser de tipo byte, short, int, char o  una enumeración. A partir de
JDK7, la expresión también puede ser de tipo String.
 Los valores duplicados de case no están permitidos.
 La declaración predeterminada es opcional.
 La declaración de interrupción  se usa dentro del switch para finalizar una secuencia de
instrucción.
 La declaración es opcional. Si se omite, la ejecución continuará en el siguiente case.

Ejemplo:

class SwitchCaseDemo
{
public static void main(String args[])
{
int i = 2;
switch (i)
{
case 0:
System.out.println("i es cero."); break;
break;
case 1: System.out.println("i es uno.");

break;
case 2:
System.out.println("i es dos.");
break;
default: System.out.println(“i es mayor que 2.”);
}
}
}

Salida:

i es mayor que 2.

EJERCICIOS
1)REALIZAR UN PROGRAMA QUE LEA 2 NUMEROS POSITIVOS n1 Y n2 Y MUESTRE
EL MENSAJE SI n1 ES MULTIPLO DE n2.
3 2.33
Ejemplo si n1=8 y n2=4.
3 10 3 33
7
La salida sería 8 SI ES MULTIPLO DE 4. 01 10
10
si n1=7 y n2=3.
La salida sería 7 NO ES MULTIPLO DE 3.
NOTA PARA OBTENER EL RESIDUO DE LA DIVISIÓN SE UTILIZA EL OPERADOR
QUE SE UTILIZA ES EL %
7 % 3 =1

import javax.swing.*;
class Multiplo
{
public static void main (String[] args)
{
int n1,n2,r;
n1=Integer.parseInt(JOptionPane.showInputDialog("INGRESE UN NUMERO QUE SEA POSITIVO"));
n2=Integer.parseInt(JOptionPane.showInputDialog("INGRESE OTRO NUMERO TAMBIEN POSITIVO"));
if(n1>0 && n2>0)
{
r=n1%n2;
if(r==0)
JOptionPane.showMessageDialog(null,n1+" SI ES MULTIPLO DE "+n2);
else
JOptionPane.showMessageDialog(null,n1+" NO ES MULTIPLO DE "+n2);
}
else
JOptionPane.showMessageDialog(null,"ERROR LOS NUMEROS DEBEN SER POSITIVOS");
}
}
2) HACER UN PROGRAMA QUE LEA UN NUMERO DEL TECLADO Y MUESTRE SI EL
NUMERO ES PAR O ES IMPAR.
class ParOImpar
{
public static void main (String[] args)
{
int n1;
n1=Integer.parseInt(JOptionPane.showInputDialog("INGRESE UN NUMERO QUE SEA POSITIVO"));
if(n1>0)
{
if(n1%2==0)
JOptionPane.showMessageDialog(null,n1+" SI ES PAR");
else
JOptionPane.showMessageDialog(null,n1+" ES IMPAR");
}
else
JOptionPane.showMessageDialog(null,"ERROR EL NUMERO DEBE SER POSITIVO");
}
}

3) ) HACER UN PROGRAMA QUE LEA UN NUMERO DEL TECLADO Y CALCULE LA


RAÍZ CUADRADA DEL NUMERO Y MOSTRARLA. NOTA SI EL NUMERO ES
NEGATIVO DEBERA CONVERTIRSE A NUMERO POSITIVO.
Math.sqrt(valor): método que calcula la raíz cuadrada de un número.
Math.abs(valor): método que devuelve el valor absoluto de un número.

4) HACER UN PROGRAMA QUE CALCULE LA RAIZ DE UNA ECUACION DE PRIMER


GRADO.
ax+b=0

Despejamos x
x=-b/a
Datos de entrada los valores de a y b
import javax.swing.*;
class RaizE
{
public static void main (String[] args)
{
float a,b,x;
a=Float.parseFloat(JOptionPane.showInputDialog("Ingrese el valor de a"));
b=Float.parseFloat(JOptionPane.showInputDialog("Ingrese el valor de b"));
if(a==0)
System.out.println("LA EC. NO ES VALIDA");
else
{
x=-b/a;
JOptionPane.showMessageDialog(null,"LA RAIZ DE LA EC. ES X="+x);
}
}
}
COMPARACIÓN DE CADENAS
Las cadenas al ser objetos no se pueden comparar directamente, el operador == funciona para
tipos primitivos. Para comparar cadenas se pueden utilizar los métodos:
objeto.equalsIgnoreCase(cadena)
Este método compara dos Strings para ver si son iguales ignorando las diferencias entre
mayúsculas y minúsculas. Retorna true si los strings son iguales y false si no lo son.
Se muestra un ejemplo con la clase JOptionPane, y se comparan las cadenas por medio de la
instrucción switch.
Ejemplo:

import javax.swing.*;
class EjemC
{
public static void main (String[] args)
{
String resp;

resp=JOptionPane.showInputDialog("INGRESE SI O NO");
switch(resp)
{
case "SI": case "si": case "Si": case "sI":
JOptionPane.showMessageDialog(null,"INGRESO UN SI");break;
case "NO": case "no": case "No": case "nO":
JOptionPane.showMessageDialog(null,"INGRESO UN NO");break;
default: JOptionPane.showMessageDialog(null,"NO INGRESO SI y TAMPOCO NO");
}
}
}

En los ejemplos siguientes se utilizan las clases Scanner y BufferedReader que utiliza el método
objeto.equalsIgnoreCase(cadena) para comparar si la cadena ingresada es SI o es NO.
import java.util.*;
class EjemC2
{
public static void main (String[] args)
{
String res;
Scanner T=new Scanner(System.in);
System.out.println("INGRESE UN SI O UN NO");
res=T.nextLine();
if(res.equalsIgnoreCase("si"))
System.out.println("CONTESTO SI");
else
if(res.equalsIgnoreCase("no"))
System.out.println("CONTESTO NO");
else
System.out.println("NO CONTESTO SI Y TAMPOCO NO");
}
}
import java.io.*;
class EjempC3
{
public static void main (String[] args) throws IOException
{
BufferedReader T=new BufferedReader(new InputStreamReader(System.in));
String res;
System.out.println("INGRESE UN SI O UN NO");
res=T.readLine();
if(res.equalsIgnoreCase("si"))
System.out.println("CONTESTO SI");
else
if(res.equalsIgnoreCase("no"))
System.out.println("CONTESTO NO");
else
System.out.println("NO CONTESTO SI Y TAMPOCO NO");
}
}

Hay otro método que también sirve para comparar cadenas:


objeto.compareToIgnoreCase(cadena), este método te devuelve un cero si las cadenas son
iguales.

import java.util.*;
class EjemC4
{
public static void main (String[] args)
{
String res;
Scanner T=new Scanner(System.in);

System.out.println("INGRESE UN SI O UN NO");
res=T.nextLine();
if(res.compareToIgnoreCase("si")==0)
System.out.println("CONTESTO SI");
else
if(res.compareToIgnoreCase("no")==0)
System.out.println("CONTESTO NO");
else
System.out.println("NO CONTESTO SI Y TAMPOCO NO");
}
}
CICLOS
OPERADOR ++
++VAR
VAR++

Ejemplo:

Caso1 : Caso1 :

i=5; i=5;
c=i++; c=++i;

6 6
6 5
i c
i c

INCREMENTO en uno de una variable.


c=c+1;
c++;
++c;
c+=1;

EJEMPLO CON EL CICLO FOR

class EjemploF1
{
public static void main (String[] args)
{
int i;

for( i=1;i<=5;i++)
{
System.out.println("HOLA"+i);
}
System.out.println("HOLA"+i);
}
}

También podría gustarte