국비교육 5일차
어제 과제#1
// 1부터 100사이의 정수중에
// 짝수의 합과, 홀수의 합을 각각 구하여라
package work;
public class Main01 {
public static void main(String[] args) {
int evensum = 0;
int oddsum = 0;
for(int i = 0; i < 101; i++ ) {
//조건식
if(i%2 ==0 ) { //짝수
evensum += i;
} else { //홀수
oddsum += i;
}
}
System.out.println("짝수 : " + evensum);
System.out.println("홀수 : " + oddsum);
}
}
break : 반복문 안에서 break 키워드를 만나면 반복을 강제로 종료한다.
continue : 실행흐름이 증감식으로 강제 이동한다.
while(조건식){
...
continue;
break;
}
package work;
public class Main05 {
public static void main(String[] args) {
// 1~100 중에서 홀수들의 합
// 무한루프
// continue; break; 사용해서 홀수들의 합 출력
int oddsum =0;
int i = 0;
while(true) {
i++;
if(i%2==0) {
continue;
}
if(i > 100) {
break;
}
oddsum +=i;
}
System.out.println(oddsum);
}
}
package work;
public class Main06 {
public static void main(String[] args) {
/*
* 1. 구구단 2단 출력
* 2 * 1 = 2
* 2 * 2 = 4
* ...
* 2 * 9 = 18
*/
int result = 0;
for(int i =1; i < 10; i++) {
result = 2*i;
System.out.println("2*"+i+" = "+result);
}
/*
* 2. while문 으로만
* 나무를 1번 찍었습니다.
* 나무를 2번 찍었습니다.
* 나무를 3번 찍었습니다.
* ...
* 나무를 10번 찍었습니다.
* 나무가 넘어갑니다.
*/
int i = 0;
while(i < 10) {
i++;
System.out.println("나무를 "+ i +"번 찍었습니다");
if(i == 10) {
System.out.println("나무가 넘어갑니다.");
}
}
}
배열
2-1. 배열이란?
변수를 그룹으로 묶는 형태의 한 종류, 사물함 같은 형태를 갖고 있다.
하나의 배열안에는 같은 종류(데이터 형)의 값들만 저장될 수 있다.
2-2. 배열을 만드는 방법
- 배열의 선언
데이터형[] 배열이름;
배열의 생성 : 변수를 저장할 수 있는 사물함을 생성
배열이름 = new 데이터형[크기];
배열의 선언과 크기 지정에 대한 일괄지정
데이터형[] 배열이름 = new 데이터형[크기];
int[] grade = new int[3];
배열의 모양
-> 생성된 배열은 사물함과 같이 각각의 칸에 값들이 저장되고,
각각의 칸은 0부터 일련번호가 지정된다.(일련번호 = 배열의 인덱스)
2-3. 배열에 값을 저장하기
- 배열은 값을 저장할 수 있는 공간일 뿐, 그 자체가 값은 아니다.
값이 대입되지 않은 경우, 숫자는 0, boolean false가 자동으로 대입된다.
배열안에 값을 저장하기 위해서는 인덱스 번호를 사용하여 각각의 칸에
직접 값을 대입해야 한다.
배열이름[인덱스] = 값;
2-4. 둘리의 점수를 배열로 표현
int[] grade = new int[3];
grade[0] = 75;
grade[1] = 82;
grade[2] = 91;
2-5. 배열의 크기 설정과 값 할당에 대한 일괄처리
배열의 크기를 지정하면서 괄호{...} 안에 배열에 포함될 각 항목들을
콤마(,)로 나열하면서, 배열의 생성과 값의 할당을 일괄 처리할 수 있다. 이 때는 배열의
크기를 별도로 지정하지 않으며, "new 데이터형[]" 부분은 생략 가능하다.
데이터형[] 배열이름 = new 데이터형[]{값1 ,값2 ,...};
데이터형[] 배열이름 = {값1, 값2, ...};
2-6. 배열값 사용하기
배열안에 저장되어 있는 값들을 사용하여 연산이나 출력등의 처리를 위해서는 배열에
부여된 인덱스 값을 통해서 데이터에 접근해야 한다.
grade[0];
grade[1];
System.out.println(grade[2]);
2-7. 배열과 반복문
배열의 특성
-> 0~(배열의 크기 -1) 만큼의 인덱스 값을 순차적으로 갖는다.
특성을 활용한 배열 데이터 처리
-> 일정 범위를 갖고 순차적으로 증가하는 인덱스 값의 특성을 활용하면
반복문 안에서 배열의 값을 할당하거나, 할당된 값을 읽어들이는 처리가 가능
int[] grade = new int[]{100, 100, 90};
for( int i = 0; i<3; i++){
System.out.println(grade[i]);
}
2-8. 배열의 길이(크기)
- 배열의 길이를 얻기 위해서는 "배열이름.length" 형식으로 접근한다.
grade라는 배열을 생성한 경우 배열의 길이
int size = grade.length;
int[] grade = new int[]{100, 100, 90};
for( int i = 0; i<grade.length; i++){
System.out.println(grade[i]);
}
2-8. 베열의 종류
1차 배열
-> 앞에서 살펴본 배열 처럼 한 줄만 존재하는 사물함 같이 구성된 배열
-> 행에 대한 개념이 없고, 열에 대한 개념만 존재하기 때문에
"배열이름.length"는 몇 칸인지를 알아보는 기능이 된다.
2차 배열
-> 1차 배열의 각 칸에 새로운 배열을 넣는 형태
-> 1차 배열의 각 칸은 행이 되고, 각각의 칸에
개별적인 배열이 "열"의 개념이 되어 "행렬"을 구성하게 된다.
다차원 배열
-> 배열의 각 칸에 지속적으로 다른 형태의 배열을 포함시키는 형태로 2차 , 3차, 4차
n차까지 무제한 확장 가능
-> 실무에선 안 씀
2-9. 이차원 배열 선언
이차원 배열의 선언
데이터형[][] 배열이름;
2차원 배열의 크기 할당
배열이름 = new 데이터형[행][열];
2차원 배열의 선언과 할당의 일괄처리
데이터형[][] 배열이름 = new 데이터형[행][열];
2차원 배열의 선언, 크기 할당, 대입에 대한 일괄처리
데이터형[][] 배열이름 = new 데이터형[][]{
{1행0열의 값,1행1열의 값,...},
{2행0열의 값,2행 1열의 값...},
...,
{n행0열의 값,n행 1열의 값...}
};
2-10. 2차원 배열에 대한 값의 대입 방법
행,열에 대한 인덱스를 통하여 값을 대입한다
배열이름[행][열] = 값;
int[][] grade = new int[3][3];
grade[0][0] = 75;
grade[0][1] = 82;
...
grade[2][2] = 90;
2-11. 2차원 배열의 길이
2차원 배열의 길이는 행에 대한 측면과 열에 대한 측면을 나누어서 생각한다.
행의 길이
-> int rows = grade.length; (*1차원 배열에서는 열의 길이를 나타냄)
열의 길이
-> int cols = grade[행].length;