일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 온라인테스트
- 라피신
- 자바개발자
- 티스토리챌린지
- 스프링부트
- 게임개발동아리
- 42서울
- 생활코딩
- 도커
- 프로그래밍
- 오블완
- 개발공부
- 체크인미팅
- EC2
- 인프라
- 스프링
- UNICON
- AWS
- 백엔드개발자
- 인디게임
- 전국대학생게임개발동아리연합회
- UNICON2023
- Developer
- UNIDEV
- RDS
- 프리티어
- 배포
- 백엔드
- 위키북스
- CICD
- Today
- Total
Hyun's Wonderwall
[백엔드] 스터디 1주차 - Java (3) 연산자, 조건, 반복문 본문
공부에 사용한 자료
- 객체지향 프로그래밍 과목 수업자료
[Chapter 02] 자바 기본 프로그래밍 (1) 기본 자료형과 연산자 (36p~72p)
[Chapter 03] 자바 기본 프로그래밍 (1) 반복문 (~22p)
[식과 연산자]
연산: 주어진 식을 계산하여 결과를 얻어내는 과정
- 증감연산자: ++ --
- 산술연산자: + - * / %
- 시프트 연산자: >> << >>>
- 비교 연산자: > < >= <= == !=
- 비트 연산자: &(비트 AND) |(비트 OR) ^(비트 XOR) ~(비트 NOT)
- 논리 연산자: &&(논리 AND) ||(논리 OR) ! ^
- 조건 연산자: ? : (조건)
- 대입 연산자: = *= /= += -= &= ^= != <<= >>= >>>=
[연산자 우선순위]
같은 우선순위: 왼쪽->오른쪽 (예외: 대입 연산자, --, ++, +, -, !, 형변환은 오른쪽에서 왼쪽으로 처리한다)
괄호는 최우선순위: 괄호가 다시 괄호를 포함한 경우는 가장 안쪽의 관호부터 먼저 처리한다
* 산술 연산자: + _ * / %
- 몫=x/y, 나머지=x%y 활용 -> 10의 자리와 1의 자리 분리 가능
- 홀짝 판단 : n%2가 1인지 0인지 확인
* 증감 연산: 1 증가(++) 또는 감소(--)
- 전위 연산자(++a, --a): 현재 줄에서 증가 후에 값 반환
- 후위 연산자(a++, a--): 증가 전의 값 반환, 다음 줄에서 증가함
* 대입 연산: 연산의 오른쪽 결과를 왼쪽 변수에 대입 (+=, *=...)
* 비교 연산: 두 피연산자를 비교하여 true 혹은 false의 논리 값을 내는 연산 (>, <...)
* 논리 연산: 논리 값으로 NOT, OR, AND 논리 연산, 논리 값을 내는 연산 (!a : NOT. a||b : OR. a&&b : AND)
ㄴ 2<=age<30 한번에 못쓰고 (age>=20)&&(age<30) 이렇게 해야한다.
ㄴ true&&false == false, true||false ==true.
* 조건 연산자(삼항 연산자) 'condition? a : b'
- condition이 true이면 연산식의 결과는 a, false이면 b이다. if-else를 간결하게 표현할 수 있다.
ex) int s = (x>y)? 1 : -1; 두 수의 차: (a>b)? (a-b):(b-a))
* 비트 연산
- 1바이트=8비트.
- 비트 논리 연산(& | ^ ~)과 비트 시프트 연산이 있다(비트를 오른쪽이나 왼쪽으로 이동)
ㄴ ^: XOR. 두 비트가 다르면 1, 같으면 0
ㄴ 비트 시프트 연산은 나중에 다시 보기 >> >>> <<
[비교문 - If, 중첩된 if, switch]
- 단순 if문: if 괄호 안에 조건식(논리형 변수나 논리 연산)
실행문장이 단일 문장인 경우 둘러싸는 {,} 생략이 가능. - 조건문 – if-else
조건식이 true면 if{} 안의 코드 실행후 if-else문 벗어나고, False인 경우에 else{}안의 코드 실행후 if-else문 벗어남.
* 다중 if-else문: if, else if, if 연속. 조건문이 너무 많은 경우 switch문 사용 권장.
* 중첩 if-else문 (사례: 1~3학년은 60점 이상시 합격, 4학년의 경우 70점 이상시 합격) - switch문: 식과 case문의 값과 비교
case의 비교값과 일치하면 해당 case의 실행문장 수행. Break를 만나면 switch문을 벗어남.
case문에 break문이 없다면, 다음 case문으로 실행을 계속험. 언젠가 break를 만날 때까지 계속 내려가면서 실행.
case문의 값: 문자 정수 문자열 리터럴만 허용, 실수 리터럴은 허용되지X.
[자바 반복문: for문, while문, do while문]
for문: for(int i=0; i<10; i++){} //c++와 비슷
- for문 안에 선언한 변수는 for문 종료시 사라진다.
ㄴfor문의 특이한 형태: 반복 조건이 true거나/비어 있으면(true로 간주) 무한반복
while문: while(){} 반복 조건이 true이면 반복, false이면 반복 종료. 무한루프에 자주 쓰인다.
ㄴwhile에서 for문처럼 i 증가시켜 사용시 유의 -> while(i<10){ i++ 필요함}
do-while문: do{}while(); 일단 실행한 후 조건에 맞는지를 검사한다.
중첩 반복: 반복문이 다른 반복문을 내포하는 구조. 과다한 중첩 반복은 프로그램 구조를 복잡하게 하므로 2중 또는 3중 반복이 적당하다.
continue: 아래를 무시하고 다시 처음부터 시작해!
break: 반복문 하나를 완전히 빠져 나갈 때 사용, 하나의 반복문만 벗어난다.
'Study > Java, Spring' 카테고리의 다른 글
[백엔드] 스터디 - Spring Boot 어노테이션 몇가지 정리 (0) | 2023.05.15 |
---|---|
[백엔드] 스터디 2주차 - Java (4) 배열, 버블 정렬, Arrays 클래스, Random 클래스 (0) | 2023.04.03 |
[백엔드] 스터디 1주차 - Java (2) 입출력, 변수, 자료형, 캐스팅 (0) | 2023.03.27 |
[백엔드] 스터디 1주차 - Java (1) 이론 (0) | 2023.03.27 |
[Java] 생활코딩 Java 입문 수업 강의 메모 (완강) (0) | 2023.02.28 |