4/15 연산자, 배열

박세현·2024년 4월 12일

JAVA

목록 보기
5/22
post-thumbnail

연산자

  • 항과 연산자


  • 연산에 사용되는 값

    • 단항 연산
    • 이항 연산
    • 삼항 연산

예시)
10 + 20 -> 항: 10, 20

  • 연산자
    연산에 사용되는 기호

1. 대입 연산자

int num1 = 10 + 20*3;

  • = : 연산의 우선순위가 가장 낮다



2. 부호 연산자

  • +
  • - : 부호 반전
    양수 -> 음수
    음수 -> 양수
    예시)
    int num1 = 10;
    int num2 = -num1; // -10



3. 산술 연산자

  • +
  • -
  • *
  • /
  • % 나머지 연산자
    3으로 나누면 나머지는 항상 0,1,2 반복
    -> 균등 배분 해야쥐

10 + 2*3 = 16

  • 우선순위 : *, /, % > +, -

  • 우선순위 강제 적용 : (...)




4. 증가감소 연산자

  • ++ : 1씩 증가
    num++;
    ++num;
    -> 대입하면 우선순위가 다르다

예시)
int num2 = num++;
ㄴ 대입먼저하고 연산을 나중에

int num2 = ++num;
ㄴ 연산을 먼저하고 대입을 나중에

  • -- : 1씩 감소



5. 관계(비교) 연산자

  • >, <=, >, >=
  • ==
  • !=
  • 연산결과 : 논리값(true, false)
    -> 판별식 - 조건식, 반복문

참고)
== : 동일성 비교(주소 비교)
자바스크립트의 ===와 동일하다




6. 논리 연산자

1) 단락회로 평가

예시1)

예시2)



2) AND

  • 모든 조건이 참 -> 참
  • &&

예시) 연산자 우선순위: 비교연산 > 논리연산


10이상, 100이하인지를 판별
bollean result1 = num >= 10; - (1)
bollean result2 = num <= 100; - (2)


bollean result = result1 && result2


bollean result = num >= 10 && num <= 100;



3) OR

  • 어느 조건이라도 참 -> 참
  • ||


4) NOT

  • 참 -> 거짓
  • 거짓 -> 참
  • !

예시)




7. 복합 대입 연산자

  • 대입연산자 + 다른 연산자(주로 산술 연산)
  • 단항 연산

num = num + 2;
num += 2;
num *=2;




8. 조건 연산자(삼항조건연산자)

  • 조건식 ? 참일때 : 거짓일때

예시)

참고) 문자열

  • String 문자열
  • String str = "가나다";
    • +연산자 : 문자열 결합, 문자 + 숫자, 문자 + 문자, 문자 + 논리값

  • char 문자형 -> 문자 한개
  • char ch = '가';



9. 연산자 우선순위

  • 대입 < 논리 < 비교 < (..)




조건문 (if)

1) if

if (조건식) {
	// 조건식이 참일때 실행되는 코드
}


2) if_else

if (조건식) {
	// 조건식이 참일때 실행되는 코드
} else {
	// 조건식이 거짓일때 
}


3) if_else if

if (조건식1) {
	// 조건식1이 참일때 실행되는 코드 
} else if (조건식2) {
	// 조건식1 거짓 + 조건식2 참
	
} else if (조건식3) {
	// 조건식1 거짓 + 조건식2 거짓 + 조건식3 참
} else {
	// 모든 조건이 거짓일때
}




선택문 (switch)

  • 키워드
    -> 정수, int, char
    -> ENUM상수(자바8버전), 문자열 상수(자바 7버전)
switch(키워드) {
	case1: 
		//키워드 == 값1 -> 실행되는 코드 
		
	case2: 
		//키워드 == 값2 -> 실행되는 코드 
}

1) switch



2) switch_break



3) switch_default





반복문

1. while

while(조건식) {
	// 조건식이 참일때 반복 수행되는 코드 
}

예시)




2. do ~ while

do {
	// 조건식이 참일때 반복 수행되는 코드 
	// 조건식이 거짓 이라고 하더라도 한번은 실행
} while(조건식);
  • while문과 다르게 조건이 거짓이더라도 한번은 실행된다.



3. for

for (초기화식; 조건식; 증감식) {
	// 조건식이 참일때 반복 수행되는 코드
}
  • 횟수가 정해진 반복문
  • 초기값, 조건식, 증감식이 필수로 있어야 함
  • for(초기화식; 조건식; 증감식){...}

예시)

ㄴ 이거 손 아프다...횟수가 정해진 반복문이니 for문을 쓰자!

참고) 변수명 관례

  • 횟수, 순서(index)
  • 관례적으로 초기화식 변수명 i 부터 시작하고 다음 알파벳 부터 순서대로 사용
    i, j, k, l ....

    변수가 2개인 경우



1) 반복 중단 : break



2) 반복 건너뛰기 : continue - 현재 반복을 중단, 새로 시작

1,3,5,7,9,11,13 ... // 2n + 1 -> 2로 나누었을때 나머지가 1인 경우 -> 홀수



3) 중첩 반복문

반복문 안에 반복문

예시) 구구단



4) println() : 줄개행(\n)

  • System.out.println(값); : 출력 + 줄개행(\n)

  • print(값) : 출력 (줄개행 X)

  • println() : 줄개행(\n)

  • printf(형식화)

    • f: format
    • %s -> 문자열 대체
    • %d -> 정수 대체 / decimal
    • %f -> 실수 대체 / float
    • %n -> 줄개행 / \n

    예시)





배열

1. 배열이란?

1) 같은 자료형(공간의 크기가 동일)

2) 물리적인 나열 구조(순차 자료 구조)

3) 순서 쉽게 계산 -> [] 인덱스 연산자

  • [] : 순서의 위치를 계산할 수 있는 연산자
  • 인덱스 연산자를 통해 해당 주소, 위치에 접근



ㄴ 동일한 자료형
ㄴ 물리적인 나열구조


ㄴ 4바이트 건너뛰면 다음께 나온다
ㄴ 순서에 대한 위치 예측이 쉽다





2. 배열 선언과 초기화

자료형[] 배열명 = new 자료형[공간의 갯수]; -> 관례
자료형 배열명[] = new 자료형[공간의 갯수];

  • 공간의 갯수 = 변수의 갯수
  • new : 연산자인데 뭔가를 생성, 메모리 생성

참고)





3. 배열 사용하기

1) 인덱스 연산자

[ ] : 배열 공간의 위치를 계산해 주는 연산자
new : 메모리를 생성하는 연산자

참고)
인덱스 : 0부터 시작하는 순서

예시)



2) 배열선언과 동시에 초기화

자료형[] 배열명 = new 자료형[] { 값1, 값2, 값3 ....};
자료형[] 배열명 = { 값1, 값2, 값3 .... };

예시1)

ㄴ 배열도 변수이다
ㄴ 음 근데 순서가 있고 반복되네?
-> for문을 쓰자

예시2) 선언과 동시에 초기화


ㄴ 개발자는 코드 줄이기를 좋아해
ㄴ 뒤에 new int 없어도 배열인거 알 수 있잖아
ㄴ 그럼 생략하자ㅏㅏ

참고) 값을 넣지 않으면 설정되는 기본값

  • 선언만 하고 값을 넣지 않으면 메모리만 만들어지게 되는데 기본자료형 같은 경우 값을 넣지 않으면 초기값이 대입된다

1) 기본 자료형 : 초기값

  • 정수형 자료형(byte, short, int, long) -> 0
  • 실수형 자료형(float, double) -> 0.0
  • 논리형 자료형(boolean) -> false
    예시)

2) 참조 자료형

  • String -> 초기값 null



    자료형

    1) 기본 자료형

    숫자를 담는 변수에 크기

    2) 참조 자료형

    주소값을 담는 변수의 자료형

참고) 편의기능
JDK(Java Development Kit)
java.util 패키지 : 편의 기능 모음

  • Arrays : 배열의 편의 기능 모음
  • java.util.Objects: 객체의 편의 기능 모음
  • java.util.Collections: 컬렉션의 편의 기능 모음..
  • java.util.stream.Collectors : 스트림의 데이터 수집 편의 기능 모음
    -> 뒤에 s가 붙어있다 = 편의기능이다


    import java.util.Arrays
    ㄴ 이렇게 가져와야지 편의기능을 쓸 수 있다??



4. 전체 배열 길이와 유효한 값(length)

  • length
    공간의 갯수 == 변수의 갯수
    배열을 통해 만들어진 공간의 갯수
  • length라는 속성은 모든 배열에 다 있다


↓ for문에 이용하자

하지만 관례적으로 아래식(미만)으로 쓰는게 베스트




5. 향상된 for문과 배열❓

for문 너무 길어...
향산된 for문 써서 코드 좀 줄여보자 = 향상된 for문

for (각각 요소 : 배열(컬렉션)) {
	
}


ㄴ 배열에 있는 요소를 하나씩 꺼낸다

향상된 for문도 너무 길어...
Stream을 쓰면 한줄이면 가능

혹은
편의기능을 쓰자




6. 다차원배열

1) 1차원 배열 -> 직선



2) 2차원 배열 -> 평면

자료형[][] 배열명 = new 자료형[행][열];

예시)



ㄴ 모두 int로 되어있는 동일한 크기의 연속된 공간
ㄴ 해석:
[0][0] 0번째 행 0번째 열
[0][1] 0번째 행 1번째 열

2-1) 선언과 동시에 초기화

자료형[][] 배열명 = new 자료형[][] { {값1, 값2, 값3}, {값1, 값2, 값3} };

↓ 앞에 식만 봐도 배열인거 아니까 뒤에 new 자료형[][] 이건 생략하자

자료형[][] 배열명 = { {값1, 값2, 값3}, {값1, 값2, 값3} };

예시) length_행의 갯수, 열의 갯수

예시) length를 for문에 활용
① 행(0행, 1행)

② 열



3) 3차원 배열 -> 입체

자료형 [][][] 배열명 = new 자료형 [높이][가로][세로];





profile
귤귤

0개의 댓글