1
에 도달 한 후 계속 내 아래 코드 :동안 루프는 루프가 여전히 센티널 값에 도달 할 때 특히 후 루프에서 다른 모든 ... 실행 왜 루프, 특히 여기 <p></p>이의 예입니다 동안 감시 값이 나는 현재에 혼동하고있어
while (quit != -1) {
cout<<"Options: a)ir; w)ater; s)teel; q)uit \n";
char option=' ';
cin>>option;
option = toupper(option);
while(option != 'A' && option != 'W' && option != 'S' && option != 'Q'){
cin.clear();
cout<<"INVALID INPUT!! \n";
cin>>option;
option = toupper(option);
}
switch(option){
case 'Q':
cout<<"You Have Quit!";
quit = -1;
break;
}
cout<<"Please input the distance: \n";
double distance=0;
cin>>distance;
while(distance < 0){
cin.clear();
cout<<"INVALID INPUT \n";
cin>>distance;
}
switch(option){
case 'A':
seconds = distance/speed_a;
cout<< "Time travled: " << setprecision(2) << fixed << seconds << "\n";
break;
case 'W':
seconds = distance/speed_w;
cout<< "Time travled: " << setprecision(2) << fixed << seconds << "\n";
break;
case 'S':
seconds = distance/speed_s;
cout<< "Time travled: " << setprecision(2) << fixed << seconds << "\n";
break;
}
}
사용자가 종료 스위치 문을 실행하는 'Q'문자를 입력 기본적으로 ... 그것은 루프를 종료 않지만 여전히 ..
루프를 종료하기 전에 이동 한 거리 요청출력은 다음과 같습니다.
Options: a)ir; w)ater; s)teel; q)uit
q
You Have Quit!
Please input the distance:
0
--------------------------------
Process exited after 2.944 seconds with return value 0
Press any key to continue . . .
코드를 편집하여 루프를 즉시 종료하거나 모든 루프가 미리 프로그래밍 된 방식 일 수 있습니까?
어떤 조언은 스위치 케이스 내부 break 문은 스위치 블록, 루프 동안이 아닌 외부를 종료
스위치 내부의 중단은 스위치 만 중단하고 while 루프는 중단시키지 않습니다. 옵션을 테스트하려면 if를 사용하고 스위치 블록 다음에 테스트를 종료해야합니다. – Shiping