[JAVA] 자바의 연산자와 제어문

2021. 11. 21. 03:02· 프로그래밍언어/JAVA
목차
  1. 연산자(Operators)의 종류
  2. 연산자들과 우선순위
  3. 이항 연산자(binary operator)
  4. 단항 연산자
  5. 비트 연산자
  6. 기타 연산자
  7. 문장의 종류
  8. 제어문의 종류
  9. 선택문 : if ~ else ~
  10. 선택문 : switch문
  11. 반복문 : for, while, do~while
  12. 점프문 : break & continue

연산자(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
  1. 연산자(Operators)의 종류
  2. 연산자들과 우선순위
  3. 이항 연산자(binary operator)
  4. 단항 연산자
  5. 비트 연산자
  6. 기타 연산자
  7. 문장의 종류
  8. 제어문의 종류
  9. 선택문 : if ~ else ~
  10. 선택문 : switch문
  11. 반복문 : for, while, do~while
  12. 점프문 : break & continue
'프로그래밍언어/JAVA' 카테고리의 다른 글
  • [JAVA] 구조적인 프로그래밍
  • [JAVA] 자바의 입출력
  • [JAVA] 자바 변수와 자료형
  • [JAVA] 자바 프로그램 기본 사항
개발원슝이
개발원슝이
꾸준히 개발공부를 합니다.
개발원슝이
꾸준히 개발슝이
개발원슝이
전체
오늘
어제
  • ALL (237) N
    • 프로젝트 (34)
      • clone coding (19)
      • mini project (5)
      • Team project(with KIC) (10)
    • 문제 (37)
      • 백준 (7)
      • 프로그래머스 (14)
      • 정보처리기사실기 (16)
    • 설치 (9)
    • 개발 기초 (13)
    • 프로그래밍언어 (119)
      • HTML (16)
      • CSS (17)
      • JavaScript (17)
      • JAVA (13)
      • JSP (10)
      • Python (22)
      • C언어 (24)
    • 프레임워크 (6)
      • Spring (3)
      • Django (3)
    • DB (2)
      • MySQL (2)
    • AWS (1)
    • 오류 (2)
    • 이것저것 (6)
    • 전공자 개발 (3) N
    • 비전공자 개발 (5)

블로그 메뉴

  • 네이버블로그(강의노트)
  • GitHub
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 점프 투 파이썬
  • 코딩테스트
  • 따배씨
  • 홍정모교수님
  • 생활코딩
  • 인프런
  • 파이썬공부
  • javascript
  • 홍정모의 따라하며 배우는 C언어

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발원슝이
[JAVA] 자바의 연산자와 제어문
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.