1주차는 Java 기초 개념을 복습하는 시간이었다. 자바와 파이썬 문법이 가끔 헷갈릴 때가 많아 간단히 정리해보려고 한다.
정수형
byte
: 1 byte
short
: 2 byte
int
: 4 byte
long
: 8 byte, 정수값 뒤 l or L
을 붙여야 함
문자형
char
: 작은 따옴표 (' ') 사용
실수형
float
: 4 byte, 실수 값 뒤 f or F
를 붙여야 함
double
: 8 byte
논리형
boolean
: true, false와 같은 논리 값 저장
final int MAX_VALUE = 10;
맨 앞에 final
을 추가하여 상수를 정의한다. 상수의 특징처럼 값을 한 번만 대입할 수 있고 이후 변경할 수 없다.
int x = 3;
s = -x; //s = -3
x++; //x가 1씩 증가, x = 4
이때 증감 연산자의 경우 항의 앞에 오느냐 뒤에 오느냐에 따라 결과 값이 달라질 수 있다.
int x = 3;
int y = ++x * 10
// y = 4 * 10 = 40, ++x를 먼저 처리한 후 나머지 연산
int a = 3;
int b = a++ * 10
// b = 3 * 10 = 30, a = 4
//*를 먼저 처리한 후 a++ 연산
int x = 3;
x += 1; // x = x + 1, x = 4
조건식
? 결과 1
: 결과 2
조건식
을 만족하면 결과 1
을, 만족하지 않으면 결과 2
를 반환한다.int x = 3;
char y = x > 5 ? 'A' : 'B';
// x > 5 면 'A', 아니면 'B'
// y = 'B'
우선순위 | 분류 | 연산자 | 연산 방향 |
---|---|---|---|
1 | 단항 | + = ++ == ! | ← |
2 | 산술 | * % / | → |
3 | 산술 | + = | → |
4 | 비교 (대소) | < > <= >= | → |
5 | 비교 (동등) | == != | → |
6 | 논리곱 | && | → |
7 | 논리합 | || | → |
8 | 조건 | A ? B : C | → |
9 | 대입 | = += -= *= /= %= | ← |
if (조건식1) {
블록1
} else if (조건식2) {
블록2
} else if (조건식3) {
블록3
} else {
블록4
}
if 와 else if 의 괄호 속이 true
가 되면 해당하는 블록이 실행된다. 이때 false
면 실행하지 않고 다음 제어문으로 넘어가 조건식을 확인한다. 모든 조건식이 false
면 마지막 else
문이 실행된다.
switch (변수) {
case 값1 :
블록1
break;
case 값2 :
블록2
break;
default:
블록3
switch문의 변수
와 일치하는 값
을 찾는다. 일치하면 해당 case의 블록을 실행하고, break
로 빠져나온다. break
가 없다면 이가 나타날 때까지 다음 case를 실행하므로 꼭 적어준다. 전부 해당하지 않으면 default
에 해당하는 블록을 실행한다.
while (조건식) {
블록
}
조건식이 true
면 블록을 실행하고, false
면 실행하지 않는다. false
가 될 때까지 반복 실행한다.
do {
블록
} while (조건식)
do - while문의 경우, 블록을 우선 실행한 후 조건식이 true
인 동안 블록을 반복 실행한다.
for (초기화식; 조건식; 증감식) {
블록
}
반복문 중에서는 가장 많이 사용된다. 조건식이 true
인 동안 블록을 방복 실행한다.
ex )
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
위 식은 int형 변수 i
를 0으로 초기화한 뒤, 5가 되기 전까지 i
를 증가시키며 for문을 반복하게 한다. i
는 0부터 4까지 총 5가지의 값을 가지기 때문에 보통 n번 반복하고 싶다면 변수를 0으로 초기화한 뒤, 변수 < n의 조건식을 작성해 사용하곤 한다.
0
1
2
3
4
실행 결과는 다음과 같다.
반복문에서 두 가지 제어는 많이 활용된다. break
의 경우 반복문을 당장 그만두고 싶을 때, continue
의 경우 반복을 중지하고 다음 반복문을 실행하고 싶을 때 사용한다.
break
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
System.out.println(i);
}
이 경우, i == 0, 1, 2
일 때는 정상적으로 print문이 실행되지만 i == 3
이 되는 순간 break
로 반복문을 빠져나오기 때문에 더 이상의 출력은 없다.
0
1
2
continue
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
반면 이때는 i == 3
일 때 continue
를 만나 중지하고 다음 반복문을 실행한다. 따라 3을 제외하고 나머지의 출력문은 정상 실행된다.
0
1
2
4
맨 처음 대학에 입학해서 잘 모르는 상태로 배운 뒤 다시 되짚어보지 않았던 개념을 다시 정리해보며 기초를 다질 수 있던 시간이었다. 가끔 코딩할 때 예상치 못한 오류가 발생하곤 했는데, 주로 이런 기초 개념을 착각했기 때문이었다. 아는 내용이라고 대충 넘기지 말고, 이런 기회가 있을 때 열심히 복습해야겠다.