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++, 파이썬과는 달라서 약간 헷갈릴 수도 있겠다.
잘 암기하자.