2007. 3. 2. 11:52

if는 분기문이고..
while은 loop문입니다..

그럼 분기문과 loop의 차이를 아셔야 하는데...

간단히 설명드리면..
분기문은.. 특정조건을 만족할때 분기문 안에 내용을 실행한다 이고,
loop문은 특정조건을 만족하는 동안 loop문 안에 내용을 반복한다입니다...

말인즉슨...

if(i < 100) {
    i++; // i=i+1;
}
위에 구문은 i가 100 보다 작으면 i에 1을 더하라 고 명령하는것입니다..

while(i < 100) {
    i++; // i=i+1;
}
위에 구문은 i가 100보다 커질때 까지 i를 1씩 더하는 작업을 반복하라 입니다...

전혀 다른 구문이죠...

brake;는 루프문에 만 사용이 가능하며...
가장 가까운 loop를 강제 종료 시킵니다...

int i = 0;

while(i < 100) {
    break;
    i++;             // i=i+1;
}
라고 하면...i=0;으로 끝이 납니다...

int i = 0;

while(i < 100) {
    i++;             // i=i+1;
    break;
}

라고 하면 i는 1로 끝이 나죠...
브레이크의 위치에 따라 loop(반복문의 실행을 순차를 비교해보시면 더 좋을 것입니다.)

자 이제 while을 if로 바꾸면 왜 break;가 에러가 나는냐 라는 질문으로 들어가면...
우선 while은 loop(반복)문이고 if는 분기문 이기 때문에 전혀 다른말이 됩니다.

굳이 따지자면...

if( 나는 대학생){
    공부를 한다.
}

while( 나는 대학생){
    공부를 한다.
}

위와 같이 2개를 예로 들면...
if는 내가 대학생이면 공부를 한다 이고..
while은 내가 대학생인 동안 계속 공부를 한다...
입니다...

비슷해 보이실지 모르겠지만 전혀 다른말입니다.
간단하게 설명하자면 if를 계속 반복하면 while이됩니다...
해서 while을 if로 바꾸면 원하던 결과와 전혀 다른 결과가 나오게 되니 바꾸어선 안될것입니다..

그리고..
break는 loop문에만 사용이 가능한 구문이라 했습니다...
while(반복문)을 if(분기문)으로 교체를하면 당연히 말이 안 되기 때문에 에러를 뱉어 내는것입니다..

Posted by Paul Hwang