Java의 센티넬 가치
프로그래밍 컨텍스트에서 “센티넬"은 재귀 또는 루프 알고리즘에서 조건을 종료하는 데 사용되는 특정 값입니다. 센티넬 값은 더미 데이터, 플래그 데이터, 루즈 값, 신호 값 등 다양하게 사용됩니다.
while
루프에서 Sentinel 값 사용
이 프로그램은 사용자로부터 입력을 읽고 입력된 숫자의 곱을 출력합니다. 종료되는 while
루프 조건에서 number != 0
입니다. 이것은 루프의 추가 실행을 중지하는 센티넬 값입니다. 사용자가 입력이 완료되면 알 수 있습니다.
Sentinel
값은 처리할 입력의 일부가 아닙니다.
센티넬 값은 유사한 데이터 유형이어야 하지만 일반 입력과 달라야 합니다. 감시 제어 루프가 실행되어야 하는 횟수에 대한 사용자 요구 사항에 따라 엄격하게 달라집니다.
그들은 사용자로부터 입력을 받고 Scanner
클래스를 사용합니다. 이와 같이 Scanner
클래스의 input
개체가 생성됩니다.
계속하려면 사용자에게 0 이외의 숫자를 입력하라는 메시지가 표시됩니다. 그러나 코드 실행을 더 이상 중지하려면 사용자가 0을 입력해야 합니다.
사용자로부터 입력 번호를 얻기 위해 input
객체에서 nextInt()
메서드를 호출합니다. 사용자는 루프가 실행되는 빈도와 종료 시기를 결정합니다.
while
루프는 숫자 0이 입력될 때까지 사용자로부터 숫자를 수신합니다. 사용자가 0을 입력하면 프로그램은 입력된 모든 숫자의 곱을 생성해야 합니다.
센티넬 제어 루프에서 사용자는 조건이 카운터에 의존하지 않기 때문에 특정 조건에서 루프를 종료할 수 있습니다.
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