while문
반복해서 문장을 수행해야 할 경우 while문을 사용한다.
- 기본구조
while (조건문) {
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
}
조건문이 참인 동안 {}안의 문장을 계속해서 수행한다.
조건을 만나는 순간 조건이 참인지 아닌지 판별 후
> 거짓이면 코드 수행하지 않고 탈출
> 참이면 반복수행하다가 조건이 거짓이 되는 순간 반복문 탈출
while문을 사용할 때에 초기값을 while문 위에 위치시키고 블록 내에 증감식을 사용한다.
예제
public class Main {
public static void main(String[] args) {
int treeHit = 0;
while (treeHit < 10) {
treeHit++;
System.out.println("나무를 " + treeHit + "번 찍었습니다.");
if (treeHit == 10) {
System.out.println("나무 넘어갑니다.");
}
}
}
}
복합 대입 연산자(Assignment Operators)
복합 대입연산자 | 등치 | 설명 |
a += b | a = a + b | a에 b를 더해서 a에 저장 |
a -= b | a = a - b | a에 b를 빼서 a에 저장 |
a *= b | a = a * b | a에 b를 곱해서 a에 저장 |
a /= b | a = a / b | a에 b를 나눠서 a에 저장 |
a %= b | a = a % b | a에 b를 나눈 나머지를 a에 저장 |
증감 연산자
증감 연산자 | 등치 | 설명 |
++i | i = i + 1 | 전위 연산자. 먼저 i의 값을 1 증가시킨다. |
i++ | 후위 연산자. 다음 줄에서 i의 값을 1 증가시킨다. | |
--i | i = i - 1 | 전위 연산자. 먼저 i의 값을 1 감소시킨다. |
i-- | 후위 연산자. 다음 줄에서 i의 값을 1 감소시킨다. |
- 무한루프
while문 내에 증감식을 사용하지 않으면 반복문이 무한하게 실행되는 무한루프를 보게 된다.
'ctrl + c' 혹은 이클립스에서는 '중지'버튼을 누르면 무한루프를 빠져나올 수 있다.
- while문 빠져 나가기(break),while문 조건문으로 돌아가기(continue)
break
while 문은 조건문이 참인 동안 계속해서 while문 안의 내용을 수행하게 된다. 하지만 강제로 while문을 빠져나가고 싶을 때, break 를 만나면 즉시 해당 반복문 전체를 나간다.
예제
public class Main {
public static void main(String[] args) {
for(int i=1; i<5; i++){
if(i==3) break;
System.out.println(i);
}
System.out.println("반복문 끝!");
}
}
위의 예제를 살펴봤을 때, break에 걸리지 않으면 1 2 3 4가 출력되어야하지만, i==3인순간 break에 걸려 반복문을 탈출한다.
continue
while문 안의 문장을 수행할 때 어떤 조건을 검사해서 조건에 맞지 않는 경우 while문을 빠져나가는 것이 아니라 다시 while문의 맨 처음(조건문)으로 돌아가게 하고 싶을 경우에 continue를 사용한다
예제
public class Main {
public static void main(String[] args) {
for(int i=1; i<5; i++){
if(i==3)
continue;
System.out.println(i);
}
System.out.println("반복문 끝!");
}
}
위의 예제에서 break와는 다르게 i==3일때 continue를 만나 다시 조건문으로 돌아가 다음반복을 실행시킨다.
따라서 i가 3이면 System.out.println(i) 는 수행되지 않고, 1 2 4가 출력된다.
'Study > JAVA' 카테고리의 다른 글
[점프투자바] 05 객체지향프로그래밍 05-1 클래스 (0) | 2021.10.22 |
---|---|
[점프투자바] 04장 제어문 04-4 ~ 5 for문, for each문 (0) | 2021.10.21 |
[점프투자바] 03장 자료형 03-7 ~8 리스트(List), 제네릭스(Generics) (0) | 2021.10.20 |
[점프투자바] 03 자료형 03-6 배열(Array) (0) | 2021.10.20 |
[JAVA] Mac 관련 단축키 및 여러가지 설정방법 (0) | 2021.10.20 |