본문 바로가기
Language & Framework & GIT/JAVA

[언어공부] 코테를 위한 JAVA 뽀개기 #1

by veganwithbacon 2022. 10. 20.
반응형

프로그래머스 문제 풀다가 멘붕와서 모르는 것들을 그때마다 정리하기보단 기초를 다시 다잡기로 마음 먹었다. 총 3번에 나눠서 자바를 총 정리할 계획이다. 자세한 설명은 책을 통해 공부하자!

문제해결에 도움이 되는 기본적인 요소들만 다룰 계획이다.

 

1️⃣변수 상수의 차이 ?

상수는 앞에 final을 붙여서 선언한다.

final 을 통해 선언을 하면 값을 다른 수로 재할당을 못한다.

 

즉, 상수는 final 을 통해 선언 => final int sangsu=20  

 

변수는 값의 재할당을 통해 값의 변화를 줄 수 있다

 

자바를 사용하는 사람들끼리의 룰 : de facto standard(사실상 표준) => camelCase

 

 

2️⃣기본 자료형

모든 데이터는 byte로 표현 가능하다

자료형 타입(Type) 크기(Bit depth) 기본값(Default value) 표현 범위(Value range)
논리형 boolean 1byte false true 또는 false(0 or 1)
문자형 char 2byte \u0000 0~65,535
정수형 byte 1byte 0 -128 ~ 127
정수형 short 2byte 0 -32,768 ~ 32,767
정수형 int 4byte 0 -2,147,483,648~2,147,483,647
정수형 long 8byte 0 -9,223,372,036,854,775,808~9,223,372,036,854,775,807
실수형 float 4byte 0.0 -3.4E38~+3.4E38
실수형 double 8byte 0.0 -1.7E308 ~ +1.7E308

 

3️⃣참조 자료형,배열

참조자료형?

String 같이 class로 정의된 타입을 쓸 때 사용하는 것

메모리 상에서 데이터가 저장된 주소, 즉 참조값을 저장

 

배열의 필요성?

:동일 자료형의 데이터를 연속된 공간에 저장하기 위한 자료 구조

 

배열을 출력할 때는 Arrays.toString으로 감싸 출력해야 [1,2,3,4]와 같이 출력된다

배열의 선언방법에는 

                1. 선언만하기

                2. 선언과 동시에 초기화하기

 

참조자료형은 기본값이 없기 때문에 null이 들어가게 된다

ex) String [ ] emptyCheckArray = new String[5] 

    =>      [null, null, null, null, null]

 

배열에서는 맨 끝 인덱스의 값을 출력하기 위해서는 총길이에서 -1을 해야한다.

배열의 인덱스 시작은 0부터. 

보통 Array를 사용하기보단 Collection의 한 종류인 ArrayList를 좀 더 많이 사용한다

더보기

3개 배열에서 마지막 값 출력하기

public class Main{
      public static void main(String[] args){
                
                int[] scores = new int[]{10, 20, 30};
                System.out.println(scores[scores.length -1]);
           }
}

 

4️⃣연산자

종류 연산자 설명
산술연산자 + ,- ,* ,/ ,% , <<, >>(비트) 사칙연산과 나머지 연산
관계(비교)연산자 >, <, >=, <=, ==, != 크고 작음과 같고 다름을 비교
논리연산자 &&, ||, !, &, ^, ~ 그리고 (AND) 또는 (OR)으로 조건을 연결, 비트연산자
대입연산자 = 우변의 값을 좌변에 저장
기타연산자 (type), ? :, instanceof 형변환연산자, 삼항연산자, instanceof 연산자

참고로 &와 &&를 혼동하는 사람이 많은데 우선 둘 다 AND 연산자이다.

조건식이 모두 true일 경우만 true를 반환하며, &와 &&는 같은 결과를 도출한다.

 

 - 그럼 왜 두 가지나 존재할까?

   &는 앞의 조건식이 false여도 뒤의 조건식이 true인지 false인지 판별한다.결과가 false여도

   &&는 앞의 조건식이 false라면, 뒤의 조건식은 검사하지 않는다.결과는 false이기 때문에.

   즉, &는 비트 연산자이지만 &&는 논리 연산자이다

 

4️⃣조건문

if문 : "만약(if) 조건식이 참(true)이면 괄호({ }) 안의 문장들을 수행해라"

 

1. 단순 if문

2. if-else문

3. if-else if-else문

4. switch-case문

 

if문은 boolean값, switch문은 변수의 값에 따라 결정

 

1. 단순 if문

if의 조건식에는 boolean 타입 변수로, true 또는 false 값을 산출할 수 있는 연산식이 올 수 있다.

조건식이 true면 블록을 실행하고, 조건식이 false면 블록을 실행하지 않는다.

조건식이 true일 때 실행문이 1개라면 중괄호{ }를 생략할 수 있다. 

 

 

2. if-else문

기본적인 사용 방법은 if문과 동일하다

if문과 else블록을 함께 사용하면 조건식의 결과에 따라 실행 블록을 선택할 수 있다.

 

실행 흐름

조건식이 true면 실행문 A  -> 실행문 C 순으로 실행한다

 

조건식이 false면 실행문 B -> 실행문 C 순으로 실행한다

 

 

3. if-else else-if 문

else if문을 사용하면 하나의 조건을 만족하면 다른 조건은 더 이상 비교하지 않습니다.

하지만 if문을 여러 번 작성하면 조건과 실행문이 서로 독립적이라서 원하는 값을 얻는다.

 

실행 흐름

조건식이 1이 true면 실행문 A -> 실행문 D순으로 실행된다.

조건식 1이 false면 조건식 2로 이동한다

 

조건식 2가 true면 실행문 B -> 실행문 D순으로 실행된다

조건식 2가 false면 실행문 C -> 실행문 D순으로 실행한다.

 

 

4. switch-case 문

if문과 다르게 변수의 값에 따라 실행문이 다르게 실행된다

 

if문은 boolean 값만 사용할 수 있기 때문에 경우의 수가 많을 경우 else if문을 대량으로 추가한다.

하지만 switch문은 변수의 값에 따라 실행문이 결정되기 때문에 더 간결하다.

if문과 다르게 break문을 반드시 작성한다

break문을 작성을 안하면 모든 실행문이 실행된다

각 조건을 case로 표시하고 마지막은 default로 작성

 

 

 

 

뭐가 이렇게 기냐구요? 그럼 니가 정리핟

감사합니다

반응형

댓글