Valor sentinel en Java

Rupam Yadav 12 octubre 2023
Valor sentinel en Java

En un contexto de programación, sentinel es un valor específico que se utiliza para terminar una condición en un algoritmo recursivo o en bucle. El valor centinela se utiliza de muchas formas, como datos ficticios, datos de marca, valor coloreado o valor de señal.

Uso del valor centinela en un bucle while

Este programa lee la entrada del usuario e imprime el producto de los números de entrada. En la condición del bucle while que termina es si number != 0. Este es el valor centinela que detiene la ejecución del bucle. Permite a los usuarios saber cuándo han terminado con la entrada.

El valor Sentinel no es la parte de la entrada que se va a procesar.

El valor centinela debe ser de un tipo de datos similar, pero debe diferir de la entrada normal. Depende estrictamente del requisito del usuario de cuántas veces se supone que debe ejecutarse un bucle controlado por centinela.

Obtienen información del usuario y utilizan la clase Scanner. Como tal, se crea un objeto input de la clase Scanner.

Se le pide al usuario que ingrese cualquier número que no sea 0 para continuar. Pero, para detener aún más la ejecución del código, el usuario debe ingresar 0.

Para obtener los números de entrada del usuario, llamamos al método nextInt() en el objeto input. El usuario decide con qué frecuencia se ejecuta el bucle y cuándo finalizarlo.

el bucle while recibe números del usuario hasta que se ingresa el número cero. Cuando el usuario ingresa cero, el programa debe generar el producto de todos los números ingresados.

En un bucle controlado por centinela, el usuario puede salir del bucle en una condición específica, ya que la condición no depende de un contador.

import java.util.Scanner;
public class SentinelTesting {
  public static void main(String[] args) {
    int enteredNum, numberMultiplied, counter;
    counter = 0;
    numberMultiplied = 1;
    Scanner scannerObj = new Scanner(System.in);
    System.out.println("To move ahead, enter a number other than 0");
    enteredNum = scannerObj.nextInt();
    while (enteredNum != 0) {
      numberMultiplied = numberMultiplied * enteredNum;
      counter++;

      System.out.println("To proceed, enter a number other than 0");
      enteredNum = scannerObj.nextInt();
    }
    System.out.println("The result of multiplying the entered numbers = " + numberMultiplied);
  }
}

Producción :

To move ahead, enter a number other than 0
10
To proceed, enter a number other than 0
20
To proceed, enter a number other than 0
5
To proceed, enter a number other than 0
0
The result of multiplying the entered numbers = 1000
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn