1. print() vs println() vs printf()
1-1. print() 메서드
- 인자값을 콘솔에 출력하는 메서드
- 개행 처리는 하지 않는다.
- System.out.print(내용);
1-2. println() 메서드
- 인자값을 콘솔에 출력하는 메서드
- 콘솔에 입력한 후 개행 처리를 한다.
- System.out.println(내용);
1-3. printf() 메서드
- 인자값을 데이터 출력 형식에 맞게 출력하는 메서드
- 형식 문자열을 이용하며, 값을 대입할 변수에 %를 붙여준다.
- System.out.printf("출력값: %s", "String");
1-4. 세 메서드의 공통점
- 값 출력 시 메서드 오버로딩을 사용해서 다양한 타입 출력을 할 수 있다.
2. 제어문 및 제어 키워드
2-1. 종류
- 선택 제어문: if, switch
- 반복 제어문: for, while, do-while
- 제어 키워드: break. continue
2-2. if 제어문
- 조건식이 참/거짓일 때 실행할 내용을 지정한다.
- 조건식은 boolean 값을 반환한다.
2-2-1. 조건식이 참인 경우에 실행할 내용만 존재
if (조건식) {
실행내용;
}
2-2-2. 조건식이 참일 때 실행할 내용과 거짓일 때 실행할 내용(1개) 모두 존재할 때
if (조건식) {
실행내용;
} else {
실행내용;
}
2-2-3. 조건식이 참일 때 실행할 내용과 거짓일 때 실행할 내용(다수) 모두 존재할 때
if (조건식 1) {
실행내용;
} else if (조건식 2) {
실행내용;
}
... else {
실행내용;
}
2-3. switch 제어문
- 조건식의 판단 기준으로 개별 값을 사용한다.
- default 키워드를 이용해서 어떤 상황에서든 무조건 실행해야 하는 내용을 지정할 수 있다.
switch(점프위치변수) {
case 위치값1:
실행내용;
case 위치값2:
실행내용;
...
case 위치값n:
실행내용;
default:
실행내용;
}
2-4. for 반복문
- for (초기식; 조건식; 증감식) { }의 형태를 가진다.
- 동작 흐름
- 초기식과 조건식을 비교한다.
- 블럭 내의 실행 내용을 실행한다.
- 증감식을 실행해서 초기식을 갱신한다.
- 초기식이 조건식을 만족하지 않을 때까지 반복한다.
- 특수한 형태
- 무한 루프를 발생시키는 경우
- 도달할 수 없는 경우
- 조건식이 항상 false가 되는 값(false 명시 등)을 사용한다.
- 블럭 밖에 실행 내용을 작성한다.
for (초기식; 조건식; 증감식) {
실행내용;
}
2-5. while 반복문
- 기본적인 흐름은 for 반복문과 동일하다.
- for 대신 while을 사용하고, 조건식이 true인 한 계속해서 실행한다.
- 초기식은 while 블럭 밖에 작성한다.
- 증감식은 while 블럭 내부에 작성한다.
- 특수한 형태
초기식;
while(조건식) {
실행내용;
증감식;
}
2-6. do-while문
- while구문의 while 구문을 do로 대체한 형태.
- while(조건식) 구문은 do 블럭에 이어서 붙인다.
초기식;
do {
실행내용;
증감식;
} while(조건식);
2-7. break키워드
- break 키워드는 가장 가까운 중괄호의 동작을 중지(탈출)하는 키워드이다.
- break를 만나면 즉시 탈출한다.
2-8. continue 키워드
- 반복문의 다음 조건으로 이동하는 키워드
- continue의 조건을 만족하는 경우, 그 다음의 동작을 한번 생략한다.
2-9. break LABEL 구문
- 여러 개의 중괄호로 중첩된 제어문의 경우, 제어문에 라벨을 붙여서 사용할 수 있다.
- break 구문 뒤에 라벨을 붙여서 표기하면, 제어문 탈출 시 해당 라벨이 붙은 부분으로 이동한다.
- 단점
- 코드가 복잡해져서 가독성이 낮아진다.
- 제어 흐름이 깨진다.
out: for (int i = 0; i < 10; i++ {
for (int j = 0; j < 10; j++ {
if ( j + 2 == 8) {
break out; // out으로 이동한다.
}
}
}