Java 中的 Sentinel

Rupam Yadav 2022年5月11日
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
Author: 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