gentoo linux, java, software libre y otras hierbas
dic, 04 2007 - 2:13 pm

[código] Instrucciones de Control en Java (1)

Los ejemplos de esta sección se enfocan en el proceso de desarrollo de programas. Se exponen los tipos primitivos de instrucciones de control para la tomas de decisiones (if, else, ifelse, while, dowhile, for, switch, etc.). Los ejemplos también muestran el manejo de la repetición controlada por contador y por centinela, y se introducen los operadores de incremento, decremento y asignación de Java y las instrucciones break y switch.

Promedio de una clase mediante la repetición controlada por contador

// Programa del promedio de una clase mediante la repetición controlada por contador.
import javax.swing.JOptionPane;
public class Promedio1
{
	public static void main( String args[] )
	{
		int total;          // suma de las calificaciones introducidas por el usuario
		int contadorCalif;  // número de calificación a introducir a continuación
		int calificacion;   // valor de la calificación
		int promedio;       // promedio de calificaciones

		String cadenaCalif; // calificación introducida por el usuario

		// fase de inicialización
		total = 0;          // inicializar total
		contadorCalif = 1;   // inicializar contador de ciclo

		// fase de procesamiento
		while ( contadorCalif <= 10 )  // iterar 10 veces
		{
			// pedir la entrada y leer la calificación del usuario
			cadenaCalif = JOptionPane.showInputDialog("Escriba la calificación como un entero: " );

			// convertir cadenaCalif en int
			calificacion = Integer.parseInt( cadenaCalif );

			total = total + calificacion;            // sumar calificacion al total
			contadorCalif = contadorCalif + 1;  // incrementar el contador
		} // fin de instrucción while
		promedio = total / 10;  // división de enteros

		// mostrar el promedio de las calificaciones del examen
		JOptionPane.showMessageDialog( null, "El promedio de la clase es " + promedio,"Promedio de la clase", JOptionPane.INFORMATION_MESSAGE );
		System.exit( 0 );  // terminar el programa

	} // fin de main
} // fin de la clase Promedio1

Descargar código fuente

Promedio de una clase mediante la repetición controlada por centinela

// Programa del promedio de una clase mediante la repetición controlada por centinela.
import java.text.DecimalFormat;  // clase para dar formato a los números
import javax.swing.JOptionPane;
public class Promedio2
{
	public static void main( String args[] )
	{
		int total;           // suma de las calificaciones
		int contadorCalif;   // número de calificaciones introducidas
		int calificacion;    // valor de la calificación
		double promedio;  // número con punto decimal para el promedio
		String cadenaCalif;  // calificación introducida por el usuario

		// fase de inicialización
		total = 0;         // incializar el total
		contadorCalif = 0;  // inicializar contador de ciclo

		// fase de procesamiento
		// obtener la primera calificación del usuario
		cadenaCalif = JOptionPane.showInputDialog("Escriba calificación como entero o -1 para salir:" );

		// convertir cadenaCalif en int
		calificacion = Integer.parseInt( cadenaCalif );

		// iterar hasta que el usuario introduzca el valor centinela
		while ( calificacion != -1 )
		{
			total = total + calificacion;		// sumar calificacion al total
			contadorCalif = contadorCalif + 1;	// incrementar el contador

			// obtener siguiente calificación del usuario
			cadenaCalif = JOptionPane.showInputDialog("Escriba calificación como entero o -1 para salir:" );

			// convertir cadenaCalif en int
			calificacion = Integer.parseInt( cadenaCalif );
		} // fin de instrucción while

		// fase de terminación
		DecimalFormat dosDigitos = new DecimalFormat( "0.00" );
		// si el usuario introdujo al menos una calificación...
		if ( contadorCalif != 0 )
		{
			// calcular el promedio de todas las calificaciones introducidas
			promedio = (double) total / contadorCalif;
			// mostrar el promedio con dos dígitos de precisión
			JOptionPane.showMessageDialog( null,"El promedio de la clase es " + dosDigitos.format( promedio ),"Promedio de la clase", 

JOptionPane.INFORMATION_MESSAGE );
		} // fin de la parte if de la instrucción if...else
		else // si no se introdujeron calificaciones, imprimir el mensaje apropiado
			JOptionPane.showMessageDialog( null, "No se introdujeron calificaciones","Promedio de la clase", JOptionPane.INFORMATION_MESSAGE );
		System.exit( 0 );  // terminar la aplicación
	} // fin de main
} // fin de la clase Promedio2

Descargar código fuente

Análisis de los resultados de un examen utilizando while, if y else

// Análisis de los resultados de un examen.
import javax.swing.JOptionPane;
public class Analisis
{
	public static void main( String args[] )
	{
		// inicializar variables en las declaraciones
		int aprobados = 0;				// número de aprobados
		int reprobados = 0;				// número de reprobados
		int contadorEstudiantes = 1;	// contador de estudiantes
		int resultado;					// resultado de un examen
		String entrada;					// valor introducido por el usuario
		String salida;					// cadena de salida
		// procesar 10 estudiantes utilizando un ciclo controlado por contador
		while ( contadorEstudiantes <= 10 )
		{
			entrada = JOptionPane.showInputDialog("Escriba el resultado (1 = aprobado, 2 = reprobado)" );

			// convertir resultado en int
			resultado = Integer.parseInt( entrada );

			// si resultado es 1, incrementar aprobados; if...else anidado en while
			if ( resultado == 1 )
				aprobados = aprobados + 1;
			else // si resultado no es 1, incrementar reprobados
				reprobados = reprobados + 1;
			// incrementar contadorEstudiantes para que el ciclo termine eventualmente
			contadorEstudiantes = contadorEstudiantes + 1;
		} // fin de instrucción while
		// fase de terminación; preparar y mostrar resultados
		salida = "Aprobados: " + aprobados + "\nReprobados: " + reprobados;
		// determinar si aprobaron más de 8 estudiantes
		if ( aprobados > 8 )
			salida = salida + "\nAumentar colegiatura";
		JOptionPane.showMessageDialog( null, salida,
                       "Análisis de resultados del examen",JOptionPane.INFORMATION_MESSAGE );
		System.exit( 0 );  // terminar la aplicación
	} // fin de main
} // fin de la clase Analisis

Descargar código fuente

Los operadores preincremento y postdecremento

// Los operadores preincremento y postdecremento.
public class Incremento
{
	public static void main( String args[] )
	{
		int c;
		// demostrar el uso de postincremento
		c = 5;                     // asignar 5 a c
		System.out.println( c );   // imprimir 5
		System.out.println( c++ ); // imprimir 5 y después postincremento
		System.out.println( c );   // imprimir 6
		System.out.println();      // saltar una línea

		// demostrar el uso de preincremento
		c = 5;                     // asignar 5 a c
		System.out.println( c );   // imprimir 5
		System.out.println( ++c ); // preincrementar y después imprimir 6
		System.out.println( c );   // imprimir 6
	} // fin de main
} // fin de la clase Incremento

Descargar código fuente

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

44 Comentarios | deja el tuyo

Un enlace entrante

43 Comentarios en “[código] Instrucciones de Control en Java (1)”

  1. Andres Añez dice:

    amigo disculpe que mi pregu nta no tenga nada de realicion con programacion pero me podria indicar como coloco los cuadros que tienen contenido el texto plano. el que va indicando el total de lineas?’
    muchas gracias

  2. Andres Añez dice:

    gracias por la ayuda, tienes un excelente blog, me ha ayudado con mis estudios, seguire visitando la pagina, gracias por todo, actualmente he colocado informacion sobre java basica en mi blog, pero primero tengo que hacer unas modificaciones en la plantilla y bueno poco a poco, gracias por la ayuda

  3. Cristian dice:

    Muchas gracias Andrés por tus felicitaciones.

    Y siempre bienvenido!

  4. Andres Añez dice:

    estaria en tus psibilidades ayudarme con el uso del syntaxhighlighter ya que en otros blogs he visto manuales de como hacerlo pero nunca me funciona

  5. sandy dice:

    hola nesesito Elaborar un programa que al ser ingresados tres (3) números por el usuario, indique cuál de los números es el mayor y cuál es el menor.
    Ejemplo:
    Entrada salida
    1 5 3 Mayor: 5 – Menor: 1

    9 7 15 Mayor: 15 – Menor: 7

    • lethal irving dice:

      aqui esta la ayuda

      ojala te sierva correlo

      solo te faltaria imprimir el menor
      import javax.swing.*;

      public class MAYOR {

      public static void main (String arg[]){

      int num1,num2,num3,M=0;

      num1=Integer.parseInt(JOptionPane.showInputDialog(null,” dame un valor”));
      num2=Integer.parseInt(JOptionPane.showInputDialog(null,” dame un valor”));
      num3=Integer.parseInt(JOptionPane.showInputDialog(null,” dame un valor”));

      if (num1>num2){
      M=num1;
      }
      else
      M=num2;

      if (M>num3)

      JOptionPane.showMessageDialog(null,”mayor”+M);

      else

      JOptionPane.showMessageDialog(null,” el mayor fue”+ num3);
      }
      }

  6. israel dice:

    hola me podrian ayudar a realizar un programa urgente el problema es el siguiente:
    ingresar un conjunto de notas y que calcule el promedio y el bucle se detiene cuando una nota sea cero utilizando un input

    • lethal irving dice:

      aqui tengo uno de promedio ojala te sirva

      // Programa del promedio de una clase mediante la repetición controlada por contador.
      import javax.swing.JOptionPane;
      public class Promedio1
      {
      public static void main( String args[] )
      {
      int total; // suma de las calificaciones introducidas por el usuario
      int contadorCalif; // número de calificación a introducir a continuación
      int calificacion; // valor de la calificación
      int promedio; // promedio de calificaciones

      String cadenaCalif; // calificación introducida por el usuario

      // fase de inicialización
      total = 0; // inicializar total
      contadorCalif = 1; // inicializar contador de ciclo

      // fase de procesamiento
      while ( contadorCalif <= 10 ) // iterar 10 veces
      {
      // pedir la entrada y leer la calificación del usuario
      cadenaCalif = JOptionPane.showInputDialog("Escriba la calificación como un entero: " );

      // convertir cadenaCalif en int
      calificacion = Integer.parseInt( cadenaCalif );

      total = total + calificacion; // sumar calificacion al total
      contadorCalif = contadorCalif + 1; // incrementar el contador
      } // fin de instrucción while
      promedio = total / 10; // división de enteros

      // mostrar el promedio de las calificaciones del examen
      JOptionPane.showMessageDialog( null, "El promedio de la clase es " + promedio,"Promedio de la clase", JOptionPane.INFORMATION_MESSAGE );
      System.exit( 0 ); // terminar el programa

      } // fin de main
      } // fin de la clase Promedio1

      • Charles dice:

        Es una buena respuesta pero tengo una observacion la consulta se referia que se detenga la condicion cuando se introdusca el valor de cero no tiene que realizar necesariamente 10 iteraciones puedes cualquier cantidad de iteraciones.

  7. Lolita ponce dice:

    Me gustaria que me ayudaras a aprender java, me gusta mucho, peroi necesito lo principal, de donde salen las instrucciones, habra un listado, los corchetes cuando se usan, los parenteses, las llaves, etc.
    gracias

    • lethal irving dice:

      los llaves se usan cuando se empiesa un if un whlie for etc y cuando termine la isntruccion de este se cierra con otra llave los corchetes solo he visto en la declracion de la clase main ejmplo public static void main String args []) solo ahhi e visto el usode corchetes es el argumento de la clase creo
      y parentesis en una decicion o condicion ejemplo

      if (condicion)
      {

      else

      // o en mensajes como
      JOptionPane.showMessageDialog(null,”blablabla”);

  8. Andrea dice:

    QUIERO aprender JAVA!! desde 0, soy estudiante de ing de sistemas segundo semestre y estoy muy interesada en aprender a programar con este lenguaje, estamos viendo como hacer programas en JAVA q calculen datos matematicos, u organizar nombres, datos, en fin, cosas asi por el estilo pero estoy algo perdida :S quisiera ejemplos de este estilo de ejercicios, trabajo con el JCREATOR..tb quisiera saber tb como y donde se usan las instrucciones q por loq he visto algunas siempre van, saber todo sobre las bibliotecas de JAVA y en q momento y cuales se usan.. en fin, todo sobre JAVA, porfa!!!!!!!!!! GRACIAS

  9. Andrea dice:

    Por cierto, esta muy bien tu blog :) cada vez q puedo lo leo y esta muy interesante, espero q me sea de gran ayuda, gracias

  10. lethal irving dice:

    aqui uno programa que calcula el factorial

    import javax.swing.*;
    public class respuesta{

    public static void main(String[] args) {

    int dato;
    double R=0,f,i;

    do
    {

    dato=Integer.parseInt(JOptionPane.showInputDialog(null,”dame un dato o numero”));

    if (dato>=0)
    {
    if(dato==0||dato==1)
    f=1;
    if(dato==0)
    JOptionPane.showMessageDialog(null, “el factorial es 1″);

    else
    {

    f=1; i=1;

    while(i<=dato)

    {

    f=f*i;
    i++;
    }
    JOptionPane.showMessageDialog(null,"el factorial fue\n"+f);

    }

    }
    else

    JOptionPane.showMessageDialog(null,"error no acepta negativos");

    R=Integer.parseInt(JOptionPane.showInputDialog(null,"para salir 2p/continuar cualquier valor"));

    }while (R!=2);

    }

    }

  11. lethal irving dice:

    aqui ahi uno de pasar numeros arabicos a romanos

    epero y les sirva

    //traductor de numeros decimales a numeros romanos
    //intergrantes ac cab irving ernesto, ku cante willian roberto
    import javax.swing.*;

    public class num_rom
    {

    public static void main(String[] args)
    {

    String num,resultado1,resultado2,resultado3,resultado4;
    resultado1=”";
    resultado2=”";
    resultado3=”";
    resultado4=”";
    String imprimir=”";

    num = JOptionPane.showInputDialog(null,”numero.. “);
    int rango =Integer.parseInt(num);

    if (rango>=1000 && rango<=2000 ){

    switch (num.charAt(0)){

    case '0':

    resultado1="";
    break;
    case '1':

    resultado1="M";
    break;

    case '2':

    resultado1="MM";
    break;

    }

    switch (num.charAt(1)){

    case '1':

    resultado2="C";
    break;
    case '2':

    resultado2="CC";
    break;
    case '3':
    resultado2="CCC";
    break;
    case '4':
    resultado2="CD";
    break;
    case '5':
    resultado2="D";
    break;
    case '6':
    resultado2="DC";
    break;
    case '7':
    resultado2="DCC";
    break;
    case '8':
    resultado2="DCCC";
    break;
    case '9':
    resultado2="CM";

    break;
    }

    switch (num.charAt(2)){

    case '1':
    resultado3="X";
    break;
    case '2':
    resultado3="XX";
    break;

    case '3':
    resultado3="XXX";
    break;

    case '4':
    resultado3="XL";
    break;
    case '5':
    resultado3="L";
    break;

    case '6':
    resultado3="LX";
    break;

    case '7':
    resultado3="LXX";
    break;

    case '8':
    resultado3="LXXX";
    break;

    case '9':
    resultado3="XC";
    break;

    }

    switch (num.charAt(3)){

    case '1':
    resultado4="I";
    break;

    case '2':
    resultado4="II";
    break;

    case '3':
    resultado4="III";
    break;

    case '4':
    resultado4="IV";
    break;

    case '5':
    resultado4="V";
    break;

    case '6':
    resultado4="VI";
    break;

    case '7':
    resultado4="VII";
    break;

    case '8':
    resultado4="VIII";
    break;

    case '9':
    resultado4="IX";
    break;
    }

    imprimir=resultado1+resultado2+resultado3+resultado4;

    JOptionPane.showMessageDialog(null,"tu numero romano es: "+imprimir);

    }else
    JOptionPane.showConfirmDialog(null,"numero no permitido");

    }
    }

  12. josue dice:

    alguien me podria ayudar con este problema en java

    3. Una empresa familiar de zapatos, fabrica 3 modelos de zapatos para caballero con los siguientes precios de venta:
    1.- Modelo Ejecutivo……….345.50
    2.- Modelo Premier…………298.70
    3.- Modelo Emperador……246.00

    Los 3 modelos son fabricados únicamente en talla 8. La empresa planea fabricar los tres modelos también en tallas 9 y 10, y desea un programa que calcule los precios de venta para estas nuevas tallas. Se sabe que por cada número que se aumente en la talla del zapato, su precio de venta deberá incrementarse 10 pesos, esto significa que si el modelo Emperador cuesta 246.00 pesos en medida número 8, su costo en número 9 será 256.00 y en 10 es 266.00
    Escribe un programa que pida el modelo del zapato (a, b ó c) y la medida (8,9 ó 10) e imprima en pantalla su precio de venta correspondiente.

  13. josue dice:

    este es el ploblema

    import java.util.Scanner;
    public class menu {

    public static void main(String[] args) {

    Scanner scn=new Scanner (System.in);

    int opc;
    int talla=0;
    int resultado = 0;
    String w=”A”;
    int i;

    while (w.equalsIgnoreCase(“A”))
    {
    System.out.println(“MENU DEL PROGRAMA”);
    System.out.println(“1.-modelo ejecutivo a “);
    System.out.println(“2.- modelo priemere b “);
    System.out.println(“3.- modelo enperador c”);
    System.out.println(“4.- salir”);
    opc=scn.nextInt();

    switch(opc){

    case 1:

    System.out.println(“numero de talla “);

    talla=scn.nextInt();

    if ( talla == 1 )

    talla = talla +1;

    break;

    case 5:w=”A”;

    break;

    }
    }
    }

    }

    • Alejandro dice:

      ya tienes la mayoria solo te faltan las condiciones,

      por ejemplo supongaos que ya lees el modelo y talla (cosa que ya tienes)

      double Ejecutivo = 345.50;
      double Premier = 298.70;
      double Emperador=246.00;

      ahora
      double preciotalla = 0;

      if(talla==8){
      preciotalla = 0;
      }else if(talla==9){
      preciotalla = 10;
      }else if(talla==10){
      preciotalla = 20;
      }

      if(modelo==1){
      return Ejecutivo + preciotalla;
      }else if(modelo==2){
      return Premier + preciotalla;
      }else if(modelo==3){
      return Emperador+ preciotalla;
      }

      me lo avente aqui (no use compilador), si tiene algun error pues ya te tocara XD

      Saludos!!!

  14. josue dice:

    me urge el problema por favor alguien que me ayude con el problema gracias

  15. overlord dice:

    La verdad es que hacerte la tarea me ha hecho practicar un poco…. pero no es la idea que te hagan todo y no aprendas …

    hecho el de los zapatos ^^

¡Déjanos tu comentario!