Java 中的 Sentinel

Rupam Yadav 2023年10月12日
Java 中的 Sentinel

在编程上下文中,Sentinel 是用于终止递归或循环算法中的条件的特定值。Sentinel 有多种使用方式,例如虚拟数据、标志数据、胭脂值或信号值。

在 While 循环中使用 Sentinel 值

该程序读取用户的输入并打印出输入数字的乘积。在终止它的 while 循环条件中,如果 number != 0。这是停止进一步执行循环的 Sentinel。它允许用户知道他们何时完成了输入。

Sentinel 值不是要处理的输入部分。

Sentinel 必须是相似的数据类型,但它应该与正常输入不同。它严格取决于用户对哨兵控制循环应该运行多少次的要求。

他们从用户那里获得输入并使用 Scanner 类。因此,创建了 Scanner 类的对象 input

要求用户输入 0 以外的任何数字以继续。但是,为了进一步停止代码的执行,用户必须输入 0。

为了从用户那里获取输入的数字,我们在 input 对象上调用 nextInt() 方法。用户决定循环的执行频率和结束时间。

while 循环从用户接收数字,直到输入数字零。当用户输入零时,程序应生成所有输入数字的乘积。

在哨兵控制的循环中,用户可以在特定条件下退出循环,因为该条件不依赖于计数器。

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);
  }
}

输出:

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
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