Java 中的 Sentinel
Rupam Yadav
2022年5月11日
在程式設計上下文中,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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn