2013-08-16 8 views
0

입력 된 데이터의 유효성을 확인하려고하는데 여기에 문제가 무엇인지 알 수 없습니다. 나는 "숫자"가 "1"인지 "2"인지 확인하고 올바른 데이터가 입력 될 때까지 프롬프트를 반복합니다. 문제는 올바른 데이터가 입력되면 루프에서 빠져 나와야하지만 루프에 남아있는 것으로 나타났습니다. 나는 & 코드를 게시하여 이해를 돕기 위해 더 게시 할 수 있습니다.두 값이있는 Java while 문이 센티널 제어 루프가 종료되지 않음

while ((number != 1) || (number != 2)) // Check validity 
{ 
    System.out.println ("Number must be a 1 or a 2"); 
    System.out.print("Enter number: "); 
    number = input.nextInt();    
} // end of while check validity 

나는 각각 문 while(number != 1)while(number !=2)을 테스트하고 문제가 문 while((number !=1) || (number != 2))의 논리 내에있는 것 같다, 그래서 잘 작동하는 것 같다, 그래서 어쩌면 내가 "의 잘못된 종류를 사용하는 줄 알았는데 또는 "진술, 그래서 다른 또는 피연산자를 시도, 그리고이 작동하지 않았고, (나는 주위에 너무 많은 전환을했는지 기억이 안나요) 나는 그것이 잘못 생각하거나 논리적으로 작동하지 않았거나 생각하지 않았다 차이를 만들다.
어떻게이 문제를 해결할 수 있습니까?

답변

7

논리가 올바르지 않습니다. number1과 같지 않거나 2과 같지 않습니다. 그래서 while 루프가 종료되지 않습니다.

당신은 논리와 운영자, && 필요합니다

while ((number != 1) && (number != 2)) 

number1되지 않고 number 루프가 계속 2하지 않을 때 있도록.