강의 내용
[1] 다차원 배열의 활용(실습)
[2] 연산자와 명령문
[1] 다차원 배열의 활용(실습)
Q. 2차원 배열의 초기화(행 단위로 초기화)와 반복문을 활용한 원소 접근
초기화 리스트를 표현할 때는 중괄호를 사용해야 함
초기화가 어떻게 되느냐에 따라 배열의 모양은 달라질 수 있다.
*초기화 : 배열이 메모리에 생성됨과 동시에 값을 저장하는 것(선언+ 저장)
{1행 : {(1열), (2열), (3열), (4열)}}
{2행 : {(1열), (2열), (3열), (4열)}}
a[0] : a[0][0], a[0][1], a[0][2], a[0][3]
a[1] : a[1][0], a[1][1], a[1][2], a[1][3]
i : 행, j : 열
i = 0 → j = 0, 1, 2, 3
i = 1 → j = 0, 1, 2, 3
for(int i = 0; i < a.length; i++) { // 행(아파트의 동)
for(int j = 0; j < a[i].length; j++) { // 열(아파트의 층)
System.out.print(a[i][j]);
}
System.out.println();
}
Q. 서로 다른 열을 가진 가변 길이 배열 만들기
배열은 길이가 고정된 채로 만들어짐
배열은 한번 만들면 배열의 길이를 늘리거나 줄일 수 없음
원하는 길이 형태를 각각의 배열에 담으면 길이가 다른 배열을 만들 수 있음
*가변 길이 : 행은 길이를 적고, 열은 비워두는 형태
a[0] = new int[1];
a[1] = new int[2];
a[2] = new int[3];
a[3] = new int[4];
a[4] = new int[5];
public class TwoDimArrayInit {
public static void main(String[] args) {
// Q. 2차원 배열의 초기화(행 단위로 초기화)와 반복문을 활용한 원소 접근
int[][] a = {
{1, 2, 3, 4},
{5, 6, 7, 8}
};
for (int i = 0; i < a.length; i++) { // 행
for (int j = 0; j < a[i].length; j++) { // 열
System.out.print(a[i][j] + "\t"); // {1, 2, 3, 4} 형태로 출력하기 위함
}
System.out.println(); // 줄바꿈
}
// 가변 길이 배열
int[][] b = new int[5][];
b[0] = new int[1];
b[1] = new int[2];
b[2] = new int[3];
b[3] = new int[4];
b[4] = new int[5];
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[i].length; j++) {
b[i][j] = '☆';
System.out.print((char)b[i][j] + "\t");
}
System.out.println(); // 줄바꿈
}
}
}
[2] 연산자와 명령문
연산자의 종류
단항 연산자
항이 하나만 있어도 연산 가능한 연산자(a++, a--)
증가 연산자 ++ : ++a(전위), a++(후위)
감소 연산자 -- : --a(전위), a--(후위)
이항 연산자
항이 두 개 있어야 연산 가능한 연산자(a + b)
삼항 연산자
항이 세 개 있어야 연산 가능한 연산자
하나의 명령문을 통해 두 가지의 경우를 처리
(조건) ? 참 : 거짓
조건이 참이면 '? 참'의 값을 선택
조건이 거짓이면 ': 거짓'의 값을 선택
산술 연산자 : +, -, *, /(몫), %(나머지)
관계 연산자 : >, <, >=, <=, ==, !=, instanceof
논리 연산자 : &&, ||, !
복합 대입(=) 연산자 : +=, -=, *=, /=, %=
명령문의 종류
논리적인 사고력에서 가장 중요
모든 프로그램은 명령문의 조합으로 프로그램을 설계함
조건문 : if, if~else
선택문 : switch~case
반복문 : for, foreach, while, do~while
제어문 : break, continue
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.