break
는 break
가 속해 있는 반복문을 종료합니다.
j = 2
일 때, break
를 만나면 j
를 돌리는 for
문이 완전히 종료되어 뒤에 j = 3, 4
의 경우를 실행하지 않습니다.
바깥의 i
를 돌리는 for
문에는 영향이 전혀 없습니다.
$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
break
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
i -> 2
j -> 1
i -> 3
j -> 1
i -> 4
j -> 1
하지만 여기서 바깥쪽 i
를 돌리는 for
문을 종료하는 방법이 있습니다.
break n
n
의 기본값은 1
로 현재 속해 있는 루프를 나타냅니다.
숫자가 하나씩 증가할 때마다 바깥쪽
루프를 가리킵니다.
break 2
를 주게 되면 바깥쪽 i
를 돌리는 루프가 종료됩니다.
$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
break 2
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
continue
는 continue
가 속해 있는 반복문의 내용에서 continue
다음 코드들을 스킵합니다.
j = 2
일 때 continue
를 만나면 j
를 돌리는 for
문 안에서 continue
아래의 내용을 생략하고 다음 반복을 진행하는 것을 볼 수 있습니다.
바깥의 i
를 돌리는 for
문에는 영향이 전혀 없습니다.
$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
continue
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
j -> 3
j -> 4
i -> 2
j -> 1
j -> 3
j -> 4
i -> 3
j -> 1
j -> 3
j -> 4
i -> 4
j -> 1
j -> 3
j -> 4
continue
도 마찬가지로 매개변수를 주면 바깥쪽 루프의 내용을 스킵할 수 있습니다.
$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
continue 2
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
i -> 2
j -> 1
i -> 3
j -> 1
i -> 4
j -> 1