Java のセンチネル値
プログラミングのコンテキストでは、センチネル
は、再帰的またはループアルゴリズムで条件を終了するために使用される特定の値です。センチネル値は、ダミーデータ、フラグデータ、ルージュ値、シグナル値など、さまざまな方法で使用されます。
while
ループでのセンチネル値の使用
このプログラムは、ユーザーからの入力を読み取り、入力された数値の積を出力します。終了する while
ループ条件では、number != 0
の場合です。これは、ループのそれ以上の実行を停止するセンチネル値です。これにより、ユーザーは入力がいつ完了したかを知ることができます。
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn