문제) 구구단 출력. 반복문 이용.
실행 예)
원하는 단수(1~9)?5
5 * 1 = 5
5 * 2 = 5
...
5 * 9 = 45






문제) 구구단 출력. 1단부터 9단까지 출력. 이중 반복문 이용.
실행 예)
1 * 1 = 1
1 * 2 = 2
...
1 * 9 = 9
-------------
2 * 1 = 2
2 * 2 = 4
...
2 * 9 = 18
-------------
...
9 * 9 = 81





문제) 구구단 출력. 1단부터 9단까지 출력. 이중 반복문 이용. 한줄당 3단씩 출력
실행 예)
1 * 1 = 1      2 * 1 = 2      3 * 1 = 3
1 * 2 = 2
...
1 * 9 = 9      2 * 9 = 18     3 * 9 = 27
-------------------------------------------
4 * 1 = 4      5 * 1 = 5      6 * 1 = 3
4 * 2 = 4      5 * 2 = 5      6 * 2 = 3
7                8                9





break, continue 키워드

1. break는 블럭 탈출문. 반복문, switch문을 탈출.
2. continue는 블럭 점프문. 반복문 실행시 건너뛰기를 할 때 사용.

continue 예제
예를 들어, 아래 코드에서 출력 결과는?

for(int a=1; a<=100; a++) {
if (a%2 == 0) {
continue; //건너뛰기. 현위치에서 a++(증감식) 부분으로 이동함.
} else {
System.out.printf("%d ", a);
}
}


for(int a=1; a<=100; a++) {
if (a%2 == 0) {
continue; //건너뛰기. 현위치에서 a++(증감식) 부분으로 이동함.
}
System.out.printf("%d ", a); //1 3 5 7 .... 99
}


예를 들어, 1부터 100사이의 숫자중에서 홀수들의 합을 계산해서 출력. for문, continue키워드 이용.

int sum=0;
for(int a=1; a<=100; a++) {
if (a%2 == 0) {
continue; //건너뛰기. 현위치에서 a++(증감식) 부분으로 이동함.
}
sum += a;
}
System.out.printf("홀수들의 합: %d %n", sum);






배열(Array)


1. 배열은 크기와 성격이 같은 일련의 원소들이 모여 공동의 집합 구조를 갖는 자료의 집합체.


2. 특징
- 하나의 이름(식별자)을 가지고 여러개의 저장 공간을 가진다.
- 자료형이 같은 자료만 저장할 수 있다.
- 사전에 공간의 크기를 지정해야 한다.
- 참조형이다.
- 특정 저장 공간을 지칭하기 위해서 인덱스(0부터 시작되는 번호)를 이용한다.
- 배열의 배열을 이용해서 다차원 배열을 만들 수 있다.
- 자동 초기화 지원


3. 배열 사용 방법

자료형[] 변수명;  //배열 선언 int[] arr;
변수명 = new 자료형[크기];  //배열에 메모리 할당 arr = new int[]
변수명[인덱스] = 자료;  // 배열 요소의 사용


4. 배열 선언 및 초기값 동시 지정

자료형[] 변수명 = new 자료형[크기];  // 자동초기화 지원.
자료형[] 변수명 = {값1, 값2, .....};  // 원하는 값으로 채워짐


예를 들어,

int[] arr1 = {10, 20, 30};  //크기 3인 int형 배열
String[] arr2 = {"hong", "kim", "park", "choi"};  // 크기 4인 String형 배열




문제) char 자료형의 1차원 배열을 선언하고, 영문자 대문자를 A~Z까지 채우는 프로그램 작성.
영문자 대문자 A의 ASCII코드는 65.

//방법1

char[] arr = new char[26];

arr[0] = 'A';
arr[1] = 'B';
//...
arr[25] = 'Z';


//방법2

char[] arr = {'A', 'B', ..., 'Z'};



//방법3

char[] arr = new char[26];

for (int a=0, b=65; a<arr.length; a++, b++) {
arr[a] = (char)b; // 65[A], 66[B], ...
}






문제) 이름과 전화번호를 저장하는 주소록 작성. 배열이용. 반복문 이용.
실행 예)
회원 수(1~10)?3
이름 전화번호(1)? hong 111-1111
이름 전화번호(2)? kim 222-2222
이름 전화번호(3)? park 333-3333

----------------
전체 회원수: 3명
----------------
이름    전화번호
hong    111-1111
kim     222-2222
park    333-3333
----------------






문제) 여러개의 숫자를 입력받고, 최대값을 출력. 배열 이용.
실행 예)
갯수 지정(1~10)?3
숫자 입력(1)?20
숫자 입력(2)?10
숫자 입력(3)?30
입력된 숫자 : 20 10 30
최대값 : 30





문제) 아래 두개의 1차원 배열(arr1, arr2)에 있는 숫자들의 합집합 출력.

int[] arr1 = {2, 3, 5, 7, 9, 10, 12};
int[] arr2 = {3, 4, 5, 6, 7};

-> 합집합_첫번째방법
int[] hap = new int[arr1.length + arr2.length];

//------
hap[0] = arr1[0];
hap[1] = arr1[1];
....
hap[6] = arr1[6];

//------
hap[7] = arr2[1]; //4
hap[8] = arr2[3]; //6

//------







문제) 아래 두 개의 1차원 배열(arr1, arr2)에 있는 숫자들의 교집합 출력.

int[] arr1 = {7, 9, 12, 2, 3, 10, 5};
int[] arr2 = {3, 4, 5, 6, 7};


->교집합 // 조건연산자 ( (조건)?값1:값2 )를 이용해서 hap배열의 크기를 지정.


int[] hap = new hap[(arr1.length>arr2.length)?arr2.length:arr1.length];
hap[0] = 7;
hap[1] = 3;
hap[2] = 5;






문제) 아래 두 개의 1차원 배열(arr1, arr2)에 있는 숫자들의 차집합 출력.

int[] arr1 = {7, 9, 12, 2, 3, 10, 5};
int[] arr2 = {3, 4, 5, 6, 7};

->차집합  // a집합에서 b집합을 뺀 나머지 a집합

int[] hap = new hap[arr1.length];
hap[0] = 9;
hap[1] = 12;
hap[2] = 2;
hap[3] = 10;


WRITTEN BY
빨강꼬마

,