백엔드개발/Java

[Java] 멘토씨리즈 자바 Chapter02-Chapter05

aaahyunseo 2024. 10. 12. 03:12

*오늘의 학습 목표*

오늘 학습 내용은 한달 공백을 깨기 위한 준비 단계 정도

12월에 공부했던 코드 살펴보면서 내용 복습하기


chapter02. 변수와 상수

(1)데이터 타입

데이터 타입의 종류는

정수형 데이터 타입(byte, short, int, long)

실수형 데이터 타입(float, double)

문자형 데이터 타입(char)

논리형 데이터 타입(boolean)

Test01_02.java

(2)형변환

형변환은 자동 형변환과 명시적 형변환으로

사용 가능한데 보통 자동적으로

프로그램이 변환시켜주는 자동 형변환을 더 많이 사용하는 듯.

명시적 형변환 방법 → (변환하고자하는 타입)변수명;

(3)상수 선언

상수 선언 방법 → final 데이터 타입 상수명=값;

프로그램 실행 중 변경 할 수 없는 고정값으로

자주 사용될 것 같음.


chapter03. 연산자

(1)산술 연산자

+(더하기), -(빼기), *(곱하기), /(나누기), %(나머지)

tip)나머지 연산자는 정수만 사용할 수 있음

(2)단항 연산자

부호 연산자(+,-)

부정연산자(!)

증가연산자(++), 감소연산자(--)

++a 혹은 --a(전위증가): 변수가 사용되기 전에 값이 변화됨

a++ 혹은 a--(후위증가): 변수가 사용된 후에 값이 변화됨

(3)비교 연산자

==, <, >, <=, >=, !=

Test02_02.java

예제코드에서 보이듯이

== 연산자를 사용하지 않고도

참, 거짓을 밝힐 수 있었음.

→ .equals() 메서드 사용

하지만 equals와 ==의 차이점은 분명히 존재함.

equals 메서드는 대상의 내용 자체를 비교

== 연산자는 대상의 주소값을 비교

equals과 == 차이(타 블로그)

Test02_05

(4)논리 연산자

&&(and), ||(or), !(not)

(5)비트 연산자

:개발자가 직접 비트를 조작할 수 있는 연산자

연산하는 수를 이진수로 표현했을 때 규칙에 따라 알맞은 결과 반환

&(비트and), |(비트or), ^(비트xor), ~(비트not)

tip)아직 실무는 모르겠으나 적어도 대학 시험에서는 그다지 중요하게 다루지 않음.

(6)대입 연산자

=, +=, -=, *=, /=, %=

(7)삼항 연산자

:항이 세 개인 연산자

조건?항목1:항목2

조건: 참과 거짓으로 구분할 수 있는 비교 연산, 논리 연산 등

항목1: 조건이 참인 경우 실행할 연산이나 함수 등

항목2: 조건이 거짓인 경우 실행할 연산이나 함수 등


chapter04. 제어문

(비교연산자 코드 실습을 하면서

이미 제어문을 많이 사용했고,

python이나 C언어와 같은 제어문장이기 때문에

따로 많은 설명은 하지 않을 예정.)

(1)if-else if문

if(조건식){

//실행부분1

}

else if(조건식){

//실행부분2

}

else{

//실행부분3

}

(2)switch문

switch(조건식){

case 값1:

//조건식의 결과가 값1일 경우 실행

break;

case 값2:

//조건식의 결과가 값2일 경우 실행

break;

case 값3:

//조건식의 결과가 값3일 경우 실행

break;

default:

//조건식의 결과와 일치하는 값이 없을 때 실행

}

tip)switch문에서 각 case 마다 break;를 달아줘야 함.

만약 break이 없으면 break이 나올 때까지

모든 case를 실행시킴.(이는 C언어에서도 동일)

(3)for문

for(초기화;조건식;증감식){

system.out.println("조건식이 참일 때 실행되는 부분");

}

(4)while문

while(조건식){

//실행 부분

}

(5)do~while문

do{

//실행 부분

}while(조건식);

do~while문이 while문과 다른 점은

while문은 실행 전 조건문을 검사한 후 참, 거짓을

판단해 실행 부분을 수행할지 결정.

do~while문은 먼저 실행 부분을 수행한 후

조건문을 검사해 반복 수행을 결정.

즉, do~while문은 조건식의 참, 거짓과 관계없이

적어도 한 번은 실행됨.

Test02_07.java

Test02_07.java(2)

++++++++++

사용자로부터 입력받기

(scanner 사용법)

scanner 변수a = new scanner(system.in);

변수b = 변수a.nextInt();

이때 next뒤에는 데이터 타입이 붙음.

정수이면 nextInt(), 문자열이면 nextLine() 이런식으로


chapter05. 배열

: 같은 타입의 변수를 하나의 묶음으로 효율적 관리

(1)배열의 선언과 생성

배열의 선언

타입[] 배열이름;

ex)

int[] student;

String[] name;

배열의 생성

배열이름 = new 타입[길이]

ex)

student = new int[30];

name = new String[3];

//길이는 배열의 갯수

보통 배열의 선언과 생성은 동시에

타입[] 배열이름 = new 타입[길이];

ex)

int[] student = new int[5];

String[] name = new String[3];

배열은 인덱스 번호를 이용해 접근 가능

하지만 배열에 요소를 저장할 때

인덱스를 통해 일일이 접근하지 않고

값을 저장하는 방법도 있음.

타입[] 배열이름 = new 타입[] {요소1, 요소2, 요소3, 요소4};

int[] ar = null;

ar = new int[]{1,2,3}; //new 타입[] 생략가능

타입[] 배열이름 = {요소1, 요소2, 요소3, 요소4};

배열 선언과 동시에 중괄호를 사용해 요소를 보여주는 방식

ex)

int[] a = new int[] {10,20,30,40,50};

//배열 길이는 생략 가능

int[] b = {1,2,3,4,5};

//new int[] 생략 가능

Test03_01.java

(2)배열의 길이 확인하기

배열이름.length

(3)배열의 요소 문자열로 바꾸어 출력하기

Array.toString(배열이름)

Test03_02.java

(4)다차원 배열

:2차원 이상의 배열

그러나 3차원 배열 이상은 잘 사용하지 않고

보통 2차원 배열을 가장 많이 사용.

타입[][] 배열이름;

ex)

int[][] student;

String[][] name;

차원의 수만큼 []를 추가해 주면 됨.

타입[][] 배열이름 = new 타입[][];

ex)

int[][] student = new int[3][3];

String[][] name = new String[3][2];

Test03_04.java

(5)2차원 배열의 인덱스

2차원 배열은 행과 열로 구성됨

첫 번째 괄호의 인덱스가 행,

두 번째 괄호의 인덱스가 열

예를 들어

int[][] student = new int[3][4]; 이면

3행 4열의 2차원 배열인 것

System.out.println(student[1][3]); 이라면

2번째 행 4번째 열에 저장된 요소를 출력하라는 의미가 되는 것

(6)배열의 복사

:배열을 다른 배열로 복사하기 위한 메서드 사용

System.arraycopy(src, srcPos, dest, destPos, length);

-src는 복사할 배열, srcPos는 복사를 시작할 인덱스

-dest는 덮어쓸 배열, destPos는 덮어쓰기를 시작할 인덱스

-length는 복사할 길이

(7)foreach문

:자바에서 배열을 순한할 때 기존의 반복문보다 편리한 작업을 가능하게 하는 foreach문

for(배열의 타입 변수이름 : 배열이름){

//실행 구문

}

String[] a = {"python", "C++", "JAVA"};

for(String i : a){

System.out.println(i);

}

Test03_05.java

'백엔드개발 > Java' 카테고리의 다른 글

[Java] 일급 컬렉션  (0) 2024.10.30
[JAVA] StringBuilder  (2) 2024.10.12
[JAVA] BufferedReader와 Bufferedwriter  (0) 2024.10.12
[JAVA] 멘토씨리즈 자바 Chapter7  (3) 2024.10.12
[JAVA] 멘토씨리즈 자바 Chapter6  (2) 2024.10.12