연산자(Operators)의 종류
연산자들과 우선순위
둘 이상의 연산자가 존재하는 경우에는 우선순위에 따라 연산이 진행 된다.
연산기호 | 결합 방향 | 우선순위 |
[ ] , . | → | 1(높음) |
expr++ , expr-- | ← | 2 |
++expr , --expr , +expr , -expr , ~ , ! , (type) | ← | 3 |
* , / , % | → | 4 |
+ . - | → | 5 |
<< , >> , >>> | → | 6 |
< , > , <= , >= , instanceof | → | 7 |
== , != | → | 8 |
& | → | 9 |
^ | → | 10 |
| | → | 11 |
&& | → | 12 |
|| | → | 13 |
? expr : expr | ← | 14 |
= , += , -= , *= , /= , %= , &= , ^= , |= , <<= , >>= , >>>= | ← | 15(낮음) |
이항 연산자(binary operator)
피연산자 둘인 연산자
구분 | 연산자 | 설명 |
대입 연산자 & 산술 연산자 | = , + , - , * , / , % | 산술연산자 => 사칙연산 |
복합 대입 연산자 | += , -= , *= , /= , %= | 대입연산자가 다른 연산자와 묶어서 정의 된 형태의 연산자 |
관계 연산자 | < , > , <= , >= , == , != | 피연산자 사이의 관계를 비교 해주는 비교 연산자 |
논리 연산자 | &&(AND) , ||(OR) , !(NOT) | 연산 결과를 true 또는 false로 반환 |
단항 연산자
피연산자가 하나인 연산자
구분 | 연산자 | 설명 |
부호 연산자 | + , - | +값 , -값(부호 바꿔서 얻은 결과 출력) |
증가 및 감소 연산자 | ++(prefix) , --(prefix) |
변수에 저장된 값을 하나 증가 및 감소 시켜 출력하고 저장 ++값 , --값 : 결합방향 ← |
증가 및 감소 연산자 | ++(postfix) , --(postfix) | 변수에 저장된 값을 출력 후에 값을 하나 증가 및 감소 시켜 저장 값++, 값-- : 결합방향 ← |
비트 연산자
비트를 대상으로 하는 연산자로 피연산자는 반드시 정수여야 한다. 실수로 하는 비트 연산은 의미가 없기에 자바에서 지원하지 않는다.
구분 | 연산자 | 연산자 예 |
비트 연산자 |
&(AND) , |(OR) | |
^(XOR) | 두 비트의 값이 서로 다른 경우 1 반환 | |
~ | 피연산자의 모든 비트를 반전시켜 얻은 결과를 반환 | |
비트 쉬프트 연산자 |
비트수<< 개수 | 비트 열을 왼쪽으로 이동. 이동에 따른 빈 공간은 0으로 채움. |
비트수>>개수 | 비트 열을 오른쪽으로 이동. 이동에 따른 빈 공간은 음수의 경우 1, 양수의 경우 0으로 채움 | |
비트수>>>개수 | 비트 열을 오른쪽으로 이동. 이동에 따른 빈 공간은 0으로 채움 |
기타 연산자
구분 | 연산자 | 연산자 예 |
3항 연산자 |
? : | 문장 ? 참일경우값 : 거짓일경우값 |
객체 형식 비교 연산자 |
instanceof | ~의 인스턴스 인지를 확인 |
문장의 종류
수식문
변수 선언문
제어문
- 선택문 : 조건에 따른 문장의 선택 => if문, switch문
- 반복문 : 조건에 따른 문장의 반복 => for문, while문, do-while문
- 점프문 : 분기문 => return문, break문, continue문
기타
- 블록문({...}) : 하나 이상의 명령문이나 변수선언문, 클래스정의, 메소드정의 등을 중괄호(brace)로 묶어 놓은 것을 블록(block)이라고 한다. 블록은 중첩이 가능하고 깊이에 제한이 없다.
- 레이블문(레이블명:명령문, 레이블명:블록) : 명령문이나 블록 앞에 레이블(lable)을 붙일 수 있다. 레이블명은 식별자로서 변수 이름처럼 정의하면 된다. 레이블이 붙은 블록 내부에서는 break, continue 문장을 통해 블록을 빠져 나갈수 있다. 변수선언문, 클래스선언문에는 레이블을 붙일수 없다.
- 예외처리문 : try -catch문
- 동기화문 : synchronized문
제어문의 종류
선택문 : if ~ else ~
특정 조건이 만족될 때에만 실행하고 싶은 문장에는 if를 사용한다. 두개의 문장 중 조건에 따라 하나만 실행하고 싶다면 else를 추가한다.
- if (조건식) {조건식이 true일 경우 실행 할 문장;}
int n = 50;
if(n>10){
System.out.println("10보다 크다");
}
- if (조건식) {조건식이 true일 경우 실행 할 문장;} else {조건식이 false일 경우 실행 할 문장;}
int num = 10;
if(num % 2 == 0){
result = "짝수 입니다.";
} else{
result = "홀수 입니다.";
}
//간단한 if~else문은 삼항연산자(조건부연산자)를 이용하면 간단하게 처리 할 수 있다.
int num = 10;
result = (num % 2 == 0) ? "짝수입니다.":"홀수입니다.";
- if (조건식) {첫 번째 조건식이 true일 경우;} else if(조건식) {두번째 조건식이 true일 경우;} else{모든 조건식이 false일 경우;}
if score = 75;
String grade = "";
if (score >= 90){
grade = "A"
} else if (score >= 70 && score < 80){
grade ="B"
} else {
grade ="F"
}
선택문 : switch문
else if 문이 많이 들어 갈 경우 switch문이 더 좋은 선택이 될 수 있다.
기본 구성 : switch / 레이블(Label) => case, default / 탈출 => break
- switch(조건식){
case 값1: //조건식 결과값이 값1 일 경우 여기서부터 실행
....
case 값n : //조건식 결과값이 값n 일 경우 여기서부터 실행
....
break; //swich문 탈출
default: //결과값에 해당하는 case문이 없을 경우 여기서부터 실행
....
}
int level = 0;
String levelString = "";
switch(level){
case 0:
levelString="운영자관리, 회원관리, 글쓰기, 보기";
break;
case 1:
levelString="회원관리, 글쓰기, 보기";
break;
case 2:
levelString="글쓰기, 보기";
default:
levelString="보기";
}
반복문 : for, while, do~while
조건에 따른 코드의 반복적 실행을 위해 사용한다.
- for (초기화; 조건식; 증감식;) {조건식이 true일 경우 실행할 문장;}
for(int i = 2; i <= 9; i++){
System.out.print(i+"단:");
for(int j = 1; j <= 9; j++){
System.out.print(i + " * " + j + " = " + (i*j) + "\t");
}
System.out.println();
}
- for (변수선언: 배열){문장; ...} => for-each문은 개선된 for문으로 J2SE 5.0부터 추가 된 문법.
배열이나 컬렉션의 원소들을 차례로 다룰 때 편리
String[] numbers = {"one", "two", "three"};
for(String number: numbers) {
System.out.println(number);
}
- 초기값; while (조건식) {true일 경우 실행문; 증감식;}
int treeHit = 0;
while (treeHit < 10) {
treeHit++; //증감식
System.out.println("나무를 " + treeHit + "번 찍었습니다.");
if (treeHit == 10) {
System.out.println("나무 넘어갑니다.");
}
}
- 초기값; do {true일 경우 실행문; 증감식;} while (조건식) => 조건식 확인 전 한번 실행하고 나서 반복한다.
점프문 : break & continue
레이블(label)을 사용하여 점프 할 수 있다. break 레이블; (레이블:반복문 위치로 가서 break) 같이 사용하면 된다.
- break문 : 포함하는 가장 가까운 switch문, for문, while문, do-while문의 실행을 끝내고 빠져나갈 때 사용한다.
- continue문 : 반복문 안에서 사용한다. 가장 가까이 있는 반복문의 다음 반복을 위한 조건식이다.
'프로그래밍언어 > JAVA' 카테고리의 다른 글
[JAVA] 구조적인 프로그래밍 (0) | 2021.11.24 |
---|---|
[JAVA] 자바의 입출력 (0) | 2021.11.21 |
[JAVA] 자바 변수와 자료형 (0) | 2021.11.20 |
[JAVA] 자바 프로그램 기본 사항 (0) | 2021.11.20 |
[JAVA] 자바 프로그래밍 (0) | 2021.10.07 |