반응형

주의_1 while문 안에 switch를 사용할 때 

while문안에 if 문에서 break 하면 그뒤에 코드들은 거치지 않는다, 즉 if문은 원하는 지점에서 while문을 탈출 시킬 수 있다

위와 같이 while 안에 if 문을 써서 조건을 만족하면 break 문을 사용하여 while 문을 탈출 시킬수 있다

 

그런데 조건문중에 switch 문이 존재하고, while문과 switch 문을 아래와 같이 사용하면

while 안에 switch 안에 break 는 while 문을 탈출 시키지 못한다

break 문이 있다 치더라도, while문을 빠져나오지 못한다, 이유는 switch 안에 break문의 용도는

다음 케이스 문을 거치지 않고, switch문을 중단 시키는 용도 뿐이지, while문을 빠져나오진 못한다

 

해결책

빠져나오게 하고 싶다면, switch 문을 가장 마지막에 두고, switch 문의 case 만족할때

while문의 조건을 두고 있는 bool 변수를 false 시키는 것이다, 그러나, while 문안에 if, break 처럼

원하는 부분에서 중단 시킬 없다

 

switch를 가장 마지막에 두고 while 조건을 false로 바꾸면 가능하긴 하다 그러나 if 문처럼 원하는 지점에서 바로 탈출할 수 없다.

 

 

 

또는 return 문을 써서 switch 문도 while 문을 원하는 지점에서 바로 탈출 할 수 있기는 하지만 그와 동시에 전체 함수가 종료 된다.

 

반응형

+ Recent posts