for
문을 사용하는 사람이라면 굳이 while
문을 사용할 필요가 없다. (대학교졸업까지 코드를 짤 때, 단 한번도 while을 사용해보지 않았었다.)
하지만 while
문이 for
문보다 코드를 간결하게 해주는 경우가 있다. (ex. 초기화가 필요하지 않은 경우, 증감식이 필요하지 않은 경우) 이는 아래의 for vs while에서 다뤄보고자 한다.
while문
while(조건식) {
// 조건식의 결과가 true인 경우, 반복될 문장을 적는다.
}
while
문은 우선 조건식이 true
인지 false
인지 판별한 후에 조건식이 true
라면 {}
내의 문장을 이행하고, 다시 조건식을 판별한다. false
일 경우에는 루프 밖으로(문장 밖으로) 벗어난다.
for vs while
for
문과 while
문은 항상 서로 변환이 가능하다.
이 둘을 비교하기 위해 우선 코드를 본다면, 다음과 같다.
// for문
for(int i=0; i<10; i++) {
System.out.println(i);
}
// while문
int i = 0;
while(i<10) {
System.out.println(i);
i++;
}
값을 초기화 하고, 조건식, 증감식이 한 곳에 뭉쳐있는 것이 보기 좋은 경우 for
문이 유리하다.
do-while문
do-while
문은 while
문의 변형으로 while
문의 조건식과 블럭의 순서가 바뀌어져있다.
따라서 먼저 do
의 반복문을 실행하고 while
의 조건식이 true
인지 false
인지 판별한다.
do {
// 반복문
} while(조건식);
break문
while
문에서 break
는 자신이 포함된 가장 가까운 반복문을 벗어난다.
따라서 if
문과 주로 같이 쓰이곤 한다.
int i = 0;
int sum = 0;
while(true) {
if(sum > 100) {
// 만약 break가 된다면, 그 이후의 부분은 실행되지 않음.
break;
}
i++;
sum += i;
}
continue문
continue
문은 반복문 내에서만 사용 가능하며, 반복문이 진행되는 도중에 continue
를 만날 경우, 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
for(int i=0; i<10; i++) {
if(i%3==0) {
continue;
}
System.out.println(i);
}
// 결과
// 1 2 4 5 7 8
이름이 붙은 반복문
break
문과 continue
문에 이름을 지정해주어 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 때, 사용한다.
일반적으로 break
문과 continue
문은 자신이 포함된 최소의 반복문의 끝으로 이동하지만, 이름을 지정한다면 더 큰 반복문을 벗어날 수 있다.
Loop1:
for(int i=2; i<10; i++) {
for(int j=1; j<10; j++) {
if(j==5) {
break Loop1;
}
System.out.println(i + " x " + j + " = " + i*j);
}
}
// 결과
// 2 x 1 = 2
// 2 x 2 = 4
// 2 x 3 = 6
// 2 x 4 = 8
위 예제에서 break Loop1
을 하여 for(int i=2; i<10; i++)
반복문을 벗어날 수 있었다.
'Language > Java' 카테고리의 다른 글
자바 클래스의 이해와 객체지향 프로그래밍 강의노트2 (0) | 2019.10.26 |
---|---|
자바 클래스의 이해와 객체지향 프로그래밍 강의노트1 (0) | 2019.10.20 |
객체지향 프로그래밍 (0) | 2019.05.24 |
Java 형변환(Casting)이란 (0) | 2019.03.19 |
Java 변수 기본형과 참조형 (0) | 2019.03.17 |