연산자
연산자는 연산을 수행하는 기호를 말한다.
연산자의 종류는 다음과 같다.
단항 연산자가 이항 연산자보다 우선순위가 높다.
헷갈리기 쉬운 연산자들의 우선순위를 정리해보자.
x << 2 + 1 : 쉬프트 연산자가 + 보다 우선순위가 더 낮다. x << 3과 같은 구문임
data & 0xFF == 0 : 비트 연산자 &는 == 보다 우선순위가 더 낮다. 따라서 비교연산이 먼저 수행된다.
x < -1 || x > 3 && x < 5 : 논리 연산자 && 가 || 보다 우선순위가 더 높다.
비트 연산자
비트 연산자는 피연산자를 비트 단위로 논리 연산한다.
쉬프트 연산자는 피연산자의 각 자리를 오른쪽으로 (>>), 왼쪽으로(<<) 이동한다.
그 외 연산자
조건 연산자 ? :
if문 대신 사용할 수 있는 삼항 연산자이다.
중첩으로 아래와 같이 사용할 수도 있다.
result = x > 0 ? 1 : (x == 0 ? 0 : -1);
조건문
1. if문
if문은 if문, else문, else if문으로 구분할 수 있다.
public class IfEx {
public static void main(String[] args) {
if(true){
System.out.println("실행 1"); // 실행
}
if(false){ // false
System.out.println("실행 2");
System.out.println("실행 3");
}
if(3!=3) // false
System.out.println("실행 4");
System.out.println("실행 5"); // 실행
}
}
조건문에 다양한 값, 혹은 수식을 넣어 처리할 수 있다.
public class IfElseEx02 {
public static void main(String[] args) {
int a = 10, b = 20, c = 9;
int max;
if (a > b && a > c) {
max = a; // 위의 조건식이 true일때 실행
} else { // 위의 조건식이 false일때 실행
if (b > c) {
max = b; // 위의 조건식 true일때 실행
} else {
max = c; // 위의 조건식 false일때 실행
}
}
System.out.println("max = " + max);
}
}
위와 같이 중첩 if문을 사용해 동시에 두 조건을 만족하는 경우에 실행을 할 수 있다.
2. switch문
switch문의 기본적인 구조는 위와 같다.
case는 여러 개가 나와도 상관 없으며, break;는 해당 case를 만족하는 실행을 했을 때 실행이 끝나고
다음 case로 넘어가는 것을 방지하기 위해 사용한다.
public class SwitchEx {
public static void main(String[] args) {
int n = 2;
switch (n) { // 조건
case 1: // 값 불일치(미실행)
System.out.println("1");
break;
case 2: // 값 일치
System.out.println("2"); // 실행
// break;
case 3:
System.out.println("3"); // 실행
break;
default:
System.out.println("4이상");
}
}
}
반복문
반복문의 종류로는 for문, while문, 그리고 do-while문이 있다.
1. for문
for(int i = 1; i <= 5; i++){
// 실행문
}
// 실행문
이라고 표시된 Block부분을 5번 실행하는 for문이다.
마찬가지로 중첩 for문도 생성 가능하다.
JDK1.5 부터 배열과 컬렉션에 저장된 요소에 접근할 때 아래와 같이 편리하게 처리할 수 있다.
for (int tmp : arr){
// tmp를 활용한 실행문
}
arr의 순회를 돌면서 tmp라는 변수를 사용 가능하다.
2. while문
조건식이 참인 동안 내부의 명령문을 실행할 수 있다.
while문과 유사하게,
for(;;) { }
위처럼 무한반복문을 for문으로 만들 수 있다.
3. do-while문
'Langauge > Java' 카테고리의 다른 글
Java의 정석 Chapter6. 객체지향 프로그래밍 (0) | 2022.03.13 |
---|---|
Java의 정석 Chapter5. 배열 (0) | 2022.03.07 |
Java의 정석 Chapter2. 변수 (0) | 2022.03.07 |
Java의 정석 Chapter1. 자바를 시작하기 전에 (0) | 2022.03.07 |
점프 투 자바 요약 #객체지향프로그래밍 (0) | 2021.02.25 |