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