연산자
- lvalue = rvalue (int a = 10;)
- lvalue: 메모리
- rvalue: 메모리가 올 수 없음
산술연산자
- 사칙연산(+, -, *, /, %)
- 부호연산: 단항연산
- 증감연산(++, --)
- 전위 연산: 연산을 먼저 하고, 값을 출력
- 후위 연산: 값을 출력한 후 연산
- 연산자들의 우선순위
- 존재는 하지만, 우선순위 다 외워서 사용하지 X
- ( )을 이용하여ㅏ 정확히 우선순위를 표현해주는 것이 가장 좋음
- ( ) >> 증감, 부정 >> 곱셈, 나눗셈, 나머지 >> 덧셈, 뺄셈 >> 할당(Assignment)
- ' = '(Assignment) 연산자는 모든 연ㅅ나에서 가장 순위가 낮음
- 정수(4) + 정수(4) = 정수(4)
- 정수(4) * 정수(4) = 정수(8)
- 정수(4) / 정수(4) = 실수(8)
관계 연산자
- 비교 연산자, 부울(Boolean) 연산자
- 같다(==), 같지 않다(!=), 크다(>), 크거나 같다(>=), 작다(<), 작거나 같다(<=)
- 크지 않다 <==> 작거나 같다
- 작지 않다 <==> 크거나 같다
- 결과는 항상 Boolean이다. (True, False)
- 둘 다 가지지 않거나, 다른 값이 나오는 경우는 X
논리 연산자
- 명제: 참, 거짓으로 구분될 수 있는 문장
- 연산의 결과가 true 또는 false로 나오는 명령어
- 여러 개의 명제를 결합(부울대수)
- and
- &&. 그리고, 이거나, ...
- or(|)
- ||. 또는
- not
- !. 아니다. 부정
- 우선순위
- ! >> && >> ||
- 진리표
문자열 연산
- 덧셈 연산자 사용 가능
- 문자열과 문자열을 연결하는 역할
- str.length(): 문자열의 길이 출력
- str.isEmpty():
- str.equals(): 문자열이 일치하는지 확인
- str.substring(7,10): 문자열을 자를 때 사용(7번부터 10번까지 출력하여라)
- str.split()[0]: 문자열을 분리(구분자). 0번을 출력하여라(단어기준)
- str.trim(): 문자열의 앞/뒤 공백을 제거(중간의 공백은 제거하지 X)
비트 연산자(추후에 다룰 예정)
- 알고리즘 문제풀이(비트맵)
배열(Array)
- 가장 기본적인 자료구조
선형자료구조
라고 함- 배열, linked list...
- 여러 개의 자료가 선형적으로 구성(직선)
- 다차원(n-dimend) 배열
- 2차원 이상은 잘 다루지 X
- 알고리즘 시간은 3차원까지 다룸
- 배열도 타입을 가짐
- 배열의 크기는 타입에 따라 달라짐
- 배열의 크기는 고정되어 있음
- 처음 생성 시, 메모리에서 얼마나 사용할건지 정의 필요
- String 차입도 Char 형으로 이루어진 문자 배열
- 여러가지 기능이 추가된 형태
제어문
- 조건문과 반복문의 두 가지만 가지고 모든 명령어의 실행을 제어
조건문(분기문)
if
if(명제) {
// if 블록(명제가 참인 경우에 실행될 명령어를 모아놓은 곳)
}
블록의 시작과 끝은
{
(시작)}
(끝)를 이용해서 표현확장된 형태 -1
if(명제) {
// if 블록
}
else {
// else 블록
}
- i f 블록과 else 블록 둘 중에 하나의 블록 명령어만 실행
- if 블록의 명령어들과 else 블록의 명령어 둘 다 실행되는 경우는 X
- 둘 다 실행이 되지 않는 경우도 X
- 만약에 그렇지 않다라면?
- 두 블록의 명령이 동시에 실행이 된다?
- 명제가 참인 경우와 거짓인 ㄱ여우가 동시에 존재한다는 의미
- 참인 동시에 거짓인 경우는 존재 불가(예외 X)
- 두 블록의 명령들이 둘 다 실행이 안되는 경우?
- 참도 아니고 거짓도 아닌 경우
- 있을 수 없음
- 두 블록의 명령이 동시에 실행이 된다?
- 확장된 형태 -2
// 다중조건
if(명제){
} else if(명제) {
} else if(명제) {
}
...
else{
}
- 확장된 형태 -3
// 중첩조건
if(명제) {
if(명제) {
}
}
else{
}
switch-case
- switch-case로 작성 가능한 명령어는 if로도 표현 가능
- Switch-Case로 작성하면 if 보다 빠르게 동작한다?! => NO
- 기본적인 형태
switch(변수) {
case 값;
...
break;
case 값2:
...
break;
case 값3:
break;
...
default:
...
break;
}
- 변수의 값에 따라서 해당하는 case의 명령어들을 실행
'프로그래밍 언어 > Java 프로그래밍' 카테고리의 다른 글
Java Day7 - 객체지향 프로그래밍(클래스, 객체, ...) (1) | 2021.11.09 |
---|---|
Java Day6 - 메서드 (0) | 2021.11.08 |
Java Day4 - 반복문 (0) | 2021.11.04 |
Java Day2 - 문자, 타입 변환, 표준 입/출력, 파일 입/출력 (0) | 2021.11.02 |
Java 프로그래밍 1일차 - 환경설정, 변수 (0) | 2021.11.01 |