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