2011-10-09 6 views
0

while 루프가 있습니다. 1부터 5까지의 숫자가 1을 초과하면 탈출하고 싶습니다.while 루프 이스케이프 범위

그 중 가장 적합한 문장은 무엇입니까?

저는 현재 이걸 가지고 있습니다. 등가

while (!(1 <= oneChoice && oneChoice <= 5)) 

또는 :

while ( oneChoice!= 1 || oneChoice!= 2 || oneChoice!= 3 || oneChoice!= 4 || oneChoice!= 5 ) 
{ 
cout << "Please make a selection" << endl; 
cout << "Choose once more: "; 
cin >> oneChoice; 
break; 
} 
+1

왜 거기에 '휴식'이 있습니까? – Griwes

+0

그냥 'break'를 제거하십시오 –

+0

스위치 내에서 다른 while 루프 내에서 사용됩니다 – mystycs

답변

2

는 조건을 변경 (예를 들어, 1과 2 사이의 값을 가질 수 및 이에) oneChoiceint이고 가정하면

while (oneChoice < 1 || oneChoice > 5) 

또한 oneChoice에는 실제 의미 또는 중요성이 없습니다. 루프에 들어가면 do { ... } while (oneChoice < 1 || oneChoice > 5); 루프를 대신 사용하는 것이 좋습니다.

2
while (oneChoice < 1 or oneChoice > 5) 
{ 
    // 
} 
+0

즉, 그 범위 내에있는 것이 없다면 잘못된 것입니까? 범위 안의 무엇이든 의미는 그것이 떠날 것이라는 의미입니까? – mystycs

+0

예. 그리고 루프에서 '중단'을 사용하지 마십시오. – Griwes

+0

나는 무언가를하기 위해 휴식을해야했다. – mystycs

3

I는 다음과 같이하여 할 것 : 에러 메시지를 사용자가 허용 범위 값을 입력하는 경우에만 인쇄되도록

int n; 
for (;;) 
{ 
    cout << "Please make a selection (1-5): " 
    cin >> n; 
    if (n >= 1 && n <= 5) break; 
    cout << "You must choose a number from 1 through 5.\n"; 
} 

브레이크 중간 간다. for (;;)은 상단 또는 하단에서 종료 조건을 테스트하지 않으려는 루프의 올바른 C- 계열 관용구입니다.