jnk1m
Foliage IT
jnk1m
전체 방문자
오늘
어제
  • 분류 전체보기 (209)
    • Today I Learned (34)
    • Java (47)
    • Database (15)
    • [NHN Academy] (27)
    • Spring (47)
    • HTML + CSS + JavaScript (11)
    • JSP (3)
    • Node.js (10)
    • React Native (2)
    • 기타 (8)
    • 스크랩 (5)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
jnk1m

Foliage IT

Java

JAVA 자바 웹 개발 Day3 (Note): while문, for문, 배열

2022. 2. 10. 00:05

2022/2/9

 

제어문 – 반복문

①   while 반복문:

      A.   조건식을 먼저 검사한 후, 실행하는 반복문 (루프)

      B.   실행문 영역 {} 안에서 루프를 종료할 수 있게 만들어 줘야 한다.

 

[구조 1]

변수 = 초기값;

while(조건식){

반복하고 싶은 실행문들;

증감식;

}

 

[구조2] 반복의 횟수를 알지 못할 때, 실행할 때마다 반복 횟수가 다를 때. 변수도 필요 없음.

while(true){
   실행문들;

if(조건) break;   //어떠한 조건을 만나면 종료되는 시점이 반드시 필요함.

}

 

②   do-while:

선처리 후 비교-실행 먼저 한 후 조건을 검사하는 형태 (1번은 무조건 실행된다.)

 

[구조]

do {

   //반복할 코드 작성

} while(조건식);

 

③   for 반복문:

지정된 수만큼 반복해서 실행.
for(초기식; 조건식; 증감식){
//반복할 코드 작성.

} 실행 순서:초기식 > 조건식 > 반복 코드 > 증감식 > 조건식 > 반복 코드 > 반복. 조건 안 맞으면 종료.

 

배열 array

①   값을 여러 개 저장할 수 있다. 같은 타입의 여러 변수를 합쳐놓은 형태와 비슷하다.

②   배열의 단점이자 특징: 데이터 공간 수정/ 변경 어렵다.

③   변수 == 단독주택, 배열 == 아파트.

④   선언:
타입[] 변수명;
int [] arr;
타입 변수명[];
int arr [];
     //둘 다 ok. 전자를 더 많이 씀.
int [] arr;
int: 배열의 타입, 배열에 저장할 수 있는 데이터들의 타입
[]: 배열 생성 선언 //다른 언어랑 다르게 배열의 크기 여기다 쓰는 거 아님

⑤   stack- int타입을 만들면 이 영역에 저장됨. 다른 변수를 만들면 또 여기에 저장됨.
heap- 배열은 여기에 저장됨. 실제 메모리 상의 주소 값이 참조 되어서 스택에 있는 arr에는 주소값이 저장됨.
arr: 배열의 이름, 배열에 대한 참조형(레퍼런스) 변수(4번 참조)
선언만으로는 배열의 공간이 할당되지 않으며, arr이라는 레퍼런스 변수만 선언된 것이다. 레퍼런스 변수는 배열 실제 값이 저장되는 배열 공간의 주소값 (레퍼런스 값)을 저장하며 그 자체가 배열은 아니다. 배열 공간이 생성되지 않았기 때문에, 선언만 할시, 레퍼런스 변수의 초기값은 null이다.
-> 레퍼런스 = 배열의 주소 값,레퍼런스 변수 = 주소값을 저장하는 변수.

⑥   생성 (선언 후에)
arr = new int [5]
//새로운 메모리 공간 5개 만듦.메모리 점유/ 할당/ 생성 키워드. 중요하다. 힙 메모리에 만들어 달라고 요청하는 것.

⑦   인덱스
배열의 방은 0부터 시작하는 방 번호가 매겨지며, 이를 인덱스라 한다. 배열에서는 각 방에 접근하려면 인덱스를 이용.
arr [인덱스 번호]

⑧   length
배열의 길이 (방의 개수)를 알려주는 명령어.
arr.length => 5

⑨   초기화
생성 시 처음 들어가는 값을 초기값이라 한다.
int [] math = {100,200,300,400,500}; //new 붙일 필요 없이 중괄호 열어서 안에 값을 넣어준다. 선언, 생성, 초기화가 동시에 되는 거임.이거는 안됨. 선언/생성 확실히 나눠서 하던가 아니면 확실히 붙여서 초기화하기.

 

 

-

3일 차! while문, for문 확실히 짚고 가기.

예전에는 분명히 잘 안 됐던 부분들인데 그래도 한번 배웠다고 이제는 수월하게 예제를 풀 수 있다니.

공부해서 나준다^^ 뿌듯함.

배열 선언이나 생성이 C++, 파이썬과는 달라서 약간 헷갈릴 수도 있겠다. 

잘 암기하자.

    'Java' 카테고리의 다른 글
    • JAVA 자바 웹 개발 Day3 (Code2)
    • JAVA 자바 웹 개발 Day3 (Code1)
    • JAVA 자바 웹 개발 Day2 (Code)
    • JAVA 자바 웹 개발 Day2 (Note): 입력문, 연산자, 제어문

    티스토리툴바