arr 메소드 j가 2일때부터입니다. j가 2이면 n배열에서 숫자7을 불러오고, a[sw]는 숫자4인상태인데 if(a[j] < a[sw]) 7 < 4 조건이 거짓이어서 다시 j3으로 가야되는데 a[sw]는 왜 2가나오는건지 질문드려도될까요?
안녕하세요 길벗수험서 운영팀입니다.
첫번째 for문에서 맨처음 i가 0일때
sw = i 이 코드를 만나 sw는 0 이 됩니다.
두번째 for문에서 j는 i+1한 값을 가지고 시작이 되니
j는 1값을 가지고 반복실행하러 들어가
if( a[j] < a[sw] ) 조건을 비교합니다.
이때 a[1]에는 2라는 값이 들어있고 a[0]에는 4가 들어있습니다.
이 값들을 대입해보면 if( 2 < 4 ) 이렇게 되고 조건이 참이니
sw = j 코드를 만나 sw에는 1이라는 값이 들어갑니다
이후 다시 두번째 for문으로 반복하러 올라가면 j의 값은 1씩 증가가 되니 j는 2가될것이고 반복실행하러 들어가면
if( a[j] < a[sw] ) 이코드를 만납니다.
현재 j는 2이고, sw는 1이라는 값을 가지고 있습니다.
이 값들을 if에 적용을 해보면 if( a[2] < a[1] ) 이렇게 되고
이때 a[2]에는 7이라는 값이 들어있고 a[1]에는 2라는 값이 들어있습니다.
if( 7 < 2 ) 이렇게 값을 비교를 하는것입니다.
회원님께서 if문 밑에 있는 sw = j 이코드를 놓치신것 같네요
행복한 하루되세요 :)
-
관리자2024-07-23 18:28:32
안녕하세요 길벗수험서 운영팀입니다.
첫번째 for문에서 맨처음 i가 0일때
sw = i 이 코드를 만나 sw는 0 이 됩니다.
두번째 for문에서 j는 i+1한 값을 가지고 시작이 되니
j는 1값을 가지고 반복실행하러 들어가
if( a[j] < a[sw] ) 조건을 비교합니다.
이때 a[1]에는 2라는 값이 들어있고 a[0]에는 4가 들어있습니다.
이 값들을 대입해보면 if( 2 < 4 ) 이렇게 되고 조건이 참이니
sw = j 코드를 만나 sw에는 1이라는 값이 들어갑니다
이후 다시 두번째 for문으로 반복하러 올라가면 j의 값은 1씩 증가가 되니 j는 2가될것이고 반복실행하러 들어가면
if( a[j] < a[sw] ) 이코드를 만납니다.
현재 j는 2이고, sw는 1이라는 값을 가지고 있습니다.
이 값들을 if에 적용을 해보면 if( a[2] < a[1] ) 이렇게 되고
이때 a[2]에는 7이라는 값이 들어있고 a[1]에는 2라는 값이 들어있습니다.
if( 7 < 2 ) 이렇게 값을 비교를 하는것입니다.
회원님께서 if문 밑에 있는 sw = j 이코드를 놓치신것 같네요
행복한 하루되세요 :)