안녕하세요 저는 C++을 배우려고 노력 중이며 프로그램을 통해 약간의 연습을하고 싶습니다. 그러나 루프 내에서 cout을 사용하는 데 문제가 있습니다.루프가 다시 실행될 때 "다시 시도하십시오"라는 메시지가 표시되지 않는 이유는 무엇입니까?
텍스트를 출력하려고하는 루프입니다. 사용자가 유효하지 않은 번호를 입력하면 "다시 시도하십시오!"라고 말하게됩니다.
while (datecheck)
{
bool check(false);
if (check)
std::cout<<"Sorry try again!"<<std::endl;
std::cin>>c;
if (c >= 1)
{
if (b == 2 && c <= 28)
datecheck = false;
if (b == 2 && a % 4 == 0 && c <= 29)
datecheck = false;
if (b == 4 || b == 6 || b == 9 || b == 11 && c <= 30)
datecheck = false;
if (c <= 31)
datecheck = false;
}
check = true;
}
가 출력하고, 내가 의도적으로 루프에서 자신을 유지할 때 당신은 모든 반복에 신선한 새로운 변수 check
를 선언
Year: -20
-20
-20
로컬 변수의 초기화를 통해 루프 내에서 플래그를 false로 설정합니다. 그런 다음 사실이라면 출력합니다. 언제 출력물을 기대합니까? – Yunnosch
while bool check (false); 행을 이동시킵니다. 'check = true; '는 else 조건의 일부 여야합니다. – MKR
잠깐 내가 바보 야. 루프를 다시 시작하고 플래그를 false로 선언 할 때를 추측합니다. 내 잘못이야. 고마워. – amgtree