2012-11-29 5 views
0

연습 문제로 인해 사용자에게 이름을 묻도록 요청하고 사용자가 감시 값을 입력 할 때까지 해당 이름을 화면에 표시합니다. 나는 이것이 센티널 제어 루프라는 것을 이해하지만, 나는 정수 대신 이름을 입력한다는 사실에 주저하고있다. 내 책에서 문자열 "이름"이 아닌 정수로 센티널 값을 사용하는 방법을 설명하는 프로그램을 따라했습니다. 이 답변을 살펴 보았고 name.equals ("stop")와 같은 것을 보았습니다. API에서 찾아 보았지만 여전히 도움이되지 않았습니다. 나는 그것이 전체적으로 어떻게 적용되는지보고 싶다.
참고 : 여기까지 내가 한 일이 있으며 나는 얼마나 멀리 떨어져 있는지 알고 싶습니다.감시 제어 루프 사용

import java.util.*; 

public class SentinelControlledLoop { 

    static Scanner console = new Scanner(System.in); 
    static final int SENTINEL = #; 

    public static void main (String[] args) { 

     String name; 
     System.out.println("Enter a name " + "ending with " + SENTINEL); 
     String name = reader.next(); 

     while (!name.equals(“stop”)) { 
      name = reader.next(); 
     } 
+3

시도한 코드를 표시 하시겠습니까? –

+0

내가 지금까지 가지고있는 것을 추가했다. – user1864508

답변

0
do { 
    name = reader.next(); 
} while (name.lastIndexOf(SENTINEL) == -1); 

나는 이름이 그 안에 감시를 포함 할 수 있다고 가정합니다. 다른 경우에는 == -1

PS로 변경하십시오. String name을 두 번 신고하고 있습니다.

PS2. 더 나은 조건 :

while (!name.endsWith(String.valueOf(SENTINEL)); 
+0

센티널 가치가 이름이거나 내가 가지고있는 것과 비슷한 # 일 수 있다면 문제가되지 않겠습니까? – user1864508

+1

예. 대단히 고맙습니다. :) – user1864508

+0

보초 값은 이름이 아니며 작성한대로 '#'입니다. – joval