Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

DUDA CON REPETICION CONTROLADA POR CENTINELA

celio

Bovino maduro
Desde
11 Ago 2007
Mensajes
239
Código:
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




Mi pregunta es que 

while ( calificacion != -1 )


Por que el centinela es la calificacion?? No deberia ser contadorcalif tal como si fuera un repeticion controlada por contador??

Gracias
 
al menos sabes lo que hace el codigo???



Código:
Mi pregunta es que   while ( calificacion != -1 )   Por que el centinela es la calificacion?? No deberia ser contadorcalif tal como si fuera un repeticion controlada por contador??  Gracias
el programa te muestra el cuadro de dialogo y tu ingresas una calificacion

por ejemplo 10,9,10,8

eso significa que despues de que ingreses el 8 tu contador ya valdrá 4.

Y cuando en el cuadro de dialogo tu ingreses -1 el programa saldrá de ese while y sumara las calificaciones y las dividirá por el valor que tenga contador

no tiene caso asignarle de valor -1 al contador xq este con cada ciclo valdrá uno mas
 
Volver
Arriba