Presentation is loading. Please wait.

Presentation is loading. Please wait.

자바 프로그래밍 기초 4장. 제어문과 배열 객체 hanbitbook.co.kr.

Similar presentations


Presentation on theme: "자바 프로그래밍 기초 4장. 제어문과 배열 객체 hanbitbook.co.kr."— Presentation transcript:

1 자바 프로그래밍 기초 4장. 제어문과 배열 객체 hanbitbook.co.kr

2 Chapter 04. 제어문과 배열 객체

3 학습목표 개요 조건문 반복문 분기문 배열 객체

4 개요 제어문 자바는 작성된 명령 순서대로 실행이 된다. 프로그램의 실행 순서를 바꾸는 명령문을 제어문(control statement)이라 한다. 제어문에는 조건문(if 문, switch case 문), 반복문(for 문, while 문, do~while 문), 분기문(break 문, continue 문) 등이 있다. 배열 객체 배열(array)이란 하나의 변수를 만들어 사용한 단순 변수와는 달리 첨자를 이용해 하나의 변수로 여러개의 변수를 표현할 수 있다. 배열의 차원(dimension)이라는 개념은 배열명 다음 또는 데이터형 다음의 [](대괄호)의 개수에 따라서 1차원 배열, 2차원 배열 등으로 나누어진다. C에서의 배열은 데이터 형이지만 자바에서는 데이터 형이 아니라 객체의 개념을 갖고 있다. 

5 조건문 if 문 if 문의 ( )안에 있는 수식 a가 참(0이 아닌 모든 값)이면 k(또는 k1, k2,...,kn)가 실행된 후 s가 실행된다. 만일 거짓(0의 값)이면 k(또는 k1, k2,...,kn)는 실행되지 않고 곧바로 s가 실행된다. if 문의 일반 형식   if ( a )                  또는           if ( a )              k;                                      {     s;                                            k1;                                                   k2;                                                   ...                                                  kn;                                               }                                             s;               a:수식 k:명령문,                                       k1, k2, ..., kn: 명령문 s: if문 다음에 위치하는 명령문 

6 조건문 if 문 순서도 a k s true false a k1;k2;…kn; s true false

7 [실습하기 4-1] if 문 - 결과

8 02 public static void main(String[] args) { 03 int ken=100; 04
[실습하기 4-1] if 문 - 프로그램 01  class Jv_4_1 { 02   public static void main(String[] args) { 03     int ken=100; 04  05     System.out.println(“***** result *****”); 06     if((ken>>1) < 70) 07        System.out.println((ken>>1) + “ is less than 70”); 08   } 09  }

9 [실습하기 4-1] if 문 - 해설 03행: 변수 ken에 상수 100을 대입하는 대입문이다.
06~07행: ken>>1은 변수 ken을 오른쪽으로 1비트 만큼 이동하는 연산자다. 즉 100을 오른쪽으로 1비트 이동하면 50이 되는데 50이 70보다 작으면 50 is less than 70을 출력하고 성립하지 않으면 종료된다.

10 조건문 if else 문 if 문의 ()안에 있는 수식 a가 참(0이 아닌 모든 값)이면 k(또는 k1,k2, ..., kn)가 실행된 후 s가 실행된다. 만일 거짓(0의 값)이면 m(또는 m1,m2, ..., mn)이 실행된 후 s가 실행된다. if else 문의 일반 형식   if ( a )              k;                         else       m;                 s;               if ( a )        {             k1;             k2;             ...             kn;       } else      {             m1;             m2;             mn; s; a:수식 k, m:명령문, k1, k2, ..., kn: 명령문 m1, m2, ..., mn: 명령문 s: if else 문 다음에 위치하는      명령문

11 if else 문 순서도 조건문 a a k1;k2;…kn; m1;m2;…mn; k m s s false false true

12 [실습하기 4-2] if else 문-결과

13 [실습하기 4-2] if else 문 - 프로그램 01 class Jv_4_2 {
02    public static void main(String[] args)  03    throws java.io.IOException { 04    int x; 05  06    System.out.println("***** result *****"); 07    System.out.print(" Input x == ?"); 08    x = System.in.read() - '0'; 09     if(x > 0) 10        System.out.println("x is greater than zero"); 11     else 12        System.out.println("x is equal to or less than zero"); 13   } 14  }

14 [실습하기 4-2] if else 문 - 해설 04행: 변수 x를 선언하는 것이다. 08행: 표준 입력 스트림. 자바에서 입출력은 스트림(stream)이라는 방식을 사용한다. 사용자는 프로그램에서 입력 장치와 연결된 스트림을 통하여 데이터를 읽고, 출력 장치와 연결된 스트림을 통하여 데이터를 출력 장치에 출력한다. 표준 입력 스트림은 키보드로부터 문자를 읽어 텍스트 기반 애플리케이션에서 사용자로부터 입력을 받는다. 사용 형식은 다음과 같다. 변수  = System.in.read(); System.in.read()에서 System은 클래스, in은 객체, read()는 메소드다. System.in.read() 실행, 즉 사용자로부터 키보드 입력받은 내용이 변수에 저장된다. 여기서는 System.in.read() 실행 한 후, 즉 사용자로부터 키보드 입력받은 내용이 x라는 변수에 저장된다. 09~12행: if else 문. 프롬프트에서 입력된 1개의 수치 값이 0 보다 클 경우에는  수치값과 x is greater than zero를 출력하고 프롬프트에서 입력된 1개의 수치 값이 0보다 작거나 같을 경우에는 수치값과 x is equal to or less than zero를 출력한다.

15 조건문  if ( a )     if ( b )             p;                   else        q;               else     m;  s;      if ( a )      if ( b )         {             p1;             p2;             ...             pn;          }          {             q1;             q2;             qn;           }     {       m1;       ...       mn;     }     s; a: 수식, b: 수식 p, q, m: 명령문 p1, p2, ..., pn: 명령문 q1, q2, ..., qn: 명령문 m1, m2, ..., mn: 명령문 s: nested if else 문 다음에 위치 중첩된 if else 문 if 문의 () 안에 있는 수식 a가 참(0이 아닌 모든 값)일때 if 문의 () 안에 있는      수식 b가 참이면 p(또는 p1, p2,..., pn)가 실행된 후 s가 실행되고 수식 b가 거짓이면 q(또는 q1, q2 ,..., qn)가 실행된 후 s가 실행된다. 만일 수식 a가 거짓(0의 값)이면 m(또는 m1, m2,..., mn)이 실행된 후 s가 실행된다. if 문의 일반 형식

16 중첩된 if else 문 순서도 조건문 m b a q1;q2;…qn; b p1;p2;…pn; s m1;m2;…mn; a k s
false m b true a false q1;q2;…qn; b true p1;p2;…pn; s m1;m2;…mn; a k s

17 [실습하기 4-3] 중첩된 if else 문-결과

18 [실습하기 4-3] 중첩된 if else 문 - 프로그램
01  class Jv_4_3 { 02    public static void main(String[] args) {  03     int x=10, y=4; 04     int ken; 05  06     System.out.println("***** result *****"); 07     ken = x & y; 08     if (ken>0) 09        System.out.println("(x&y) is + "); 10     else 11        if (ken<0) 12       System.out.println("(x&y) is -"); 13        else 14       System.out.println("(x&y) is 0"); 15   } 16  }

19 [실습하기 4-3] 중첩된 if else 문 - 해설
07행: 비트 연산자. 비트 연산자에는 비트별 논리 연산자(bitwise logical operator)와 이동 연 산자(shift operator)가 있다. 비트별 논리 연산자: &(bitwise AND: 비트곱), |(bitwise OR: 비트합), ^(bitwise XOR: 배타적 논리합), ~(bitwise NOT: 비트부정) 08~14행: 중첩된 if else 문. ken>0이면 (x&y) is +가 출력되고, 성립되지 않으면 ken<0일 때 (x&y) is -가 출력, ken=0일 때 (x&y) is 0이 출력된다.

20 조건문 else if 문 if 문의 ( )안에 있는 수식 a가 참(0이 아닌 모든 값)이면 p(또는 p1, p2, ..., pn)가 실행된 후 s가 실행된다. 만일 수식 b가 참이면 q(또는 q1, q2, ..., qn)가 실행된 후 s가 실행된다. 그렇지 않고 만일 수식 z가 참이면 r(또는 r1,r2,..., rn)이 실행된 후 s가 실행된다. 만일 수식 a, b, ..., z가 모두 거짓이면 마지막 else에 있는 m(또는 m1,m2,..., mn)이 실행된 후 s가 실행된다. 즉 다중 선택시 사용하는 if 문이다.

21 else if 문 if 문의 일반 형식 조건문 if ( a ) if ( a ) { p; else if ( b ) p1; q;
  ...   else if ( z )       r;   else       m;                 s;      if ( a )        {             p1;             p2;             ...             pn;       } else if (b)      {             q1;             q2;             qn;         ... else if (z)              r1;             r2;             rn; else              m1;             m2;             mn; s; a, b, z:수식 p, q, r, m:명령문, p1, p2, ..., pn: 명령문 q1, q2, ..., qn: 명령문 r1, r2, ..., rn: 명령문 m1, m2, ..., mn: 명령문 s: else if문 다음에 위치하는 명령문 else if 문 if 문의 일반 형식

22 else if 문 순서도 조건문 a m s b z r p q a s b z … m1;m2;…mn; … r1;r2;…rn;
true false b z r p q a m1;m2;…mn; s true false b z r1;r2;…rn; p1;p2;…pn; q1;q2;…qn;

23 [실습하기 4-4] else if 문-결과

24 [실습하기 4-4] else if 문 - 프로그램 01 import java.io.*; 02 03 class Jv_4_4 {
02  03  class Jv_4_4 { 04     public static void main(String[] args)   05     throws java.io.IOException { 06     int jumsu; 07     char hakjum; 08     String iput; 09     System.out.println("***** result *****"); 10     System.out.print("Input jumsu: "); 11     InputStreamReader kkk = new InputStreamReader(System.in); 12     BufferedReader bbb = new BufferedReader(kkk); 13     iput = bbb.readLine(); 14     jumsu = Integer.parseInt(iput);

25 [실습하기 4-4] else if 문 - 프로그램 15 if (jumsu >= 90) 16 hakjum = 'A';
17     else if (jumsu >= 80) 18         hakjum = 'B'; 19     else if (jumsu >= 70) 20         hakjum = 'C'; 21     else if (jumsu >= 60) 22         hakjum = 'D'; 23     else 24         hakjum = 'F'; 25     System.out.println("Hakjum: " + hakjum); 26   } 27  }

26 [실습하기 4-4] else if 문 - 해설 01행: import 문과 기본 패키지. import 문을 사용하는 것은 패키지(package) 또는 클래스를 자바 프로그램 내로 삽입하는 경우다. 기존의 언어가 라이브러리 형태로 제공하지만 자바 언어는 패키지 형태로 제공된다. 사용 형식은 다음과 같다. import 패키지명.클래스명;또는import 패키지명.*; 자바의 기본 패키지에는 java.lang, java.util, java.io, java.net, java.awt 등이 있다. 기본 패키지 중에서 java.lang 패키지는 다른 패키지와 다르게 import 문을 사용하지 않아도 자동적으로 포함된다. import java.io.*;에서 java.io.* 패키지는 입출력 관련 클래스다. 08행: String iput;에서 문자열인 String형 변수 iput를 선언한 것이다. 입력받을 데이터를 저장하기 위한 변수다.

27 [실습하기 4-4] else if 문 - 해설 11~14행: 키보드로 입력받기 위한 명령문. InputStreamReader kkk = new InputStreamReader(System.in);에서는 입력받은 바이트 스트림을 문자 스트림으로 변환하기 위한 생성자다. 여기서 System.in은 메소드다. BufferedReader bbb = new BufferedReader(kkk);에서는 문자 스트림의 입력시에 버퍼를 사용하기 위한 생성자다. iput = bbb.readLine();에서는 버퍼에 있는 내용을 한줄씩 읽어 오는 명령문이다. jumsu = Integer.parseInt(iput);에서는 Integer.parseInt( ) 메소드에 의해서 iput에 저장되어 있는 문자열을 정수형으로 변환하여 정수형 변수 jumsu에 대입한다. 15~24행: else if 문. jumsu가 90점 이상이면 hakjum에 문자 A를 대입하고 jumsu가 80점 이상이면 hakjum에 문자 B를 대입하고 jumsu가 70점 이상이면 hakjum에 문자 C를 대입하고 jumsu가 60점 이상이면 hakjum에 문자 D를 대입하고 jumsu가 59점 미만이면 hakjum에 문자 F를 대입한다.

28 조건문 switch case 문 switch case 문은 다중 선택시 사용하는 명령문이다. switch case 문 () 안에 있는 수식 a가 상수 k1이면 p1이 실행된 후 s가 실행된다. 만일 수식 a가 상수 k2이면 p2가 실행된 후 s가 실행된다. 만일 수식 a가 상수 kn이면 pn이 실행된 후 s가 실행된다. 만일 수식 a가 상수 k1, k2, ..., kn의 어떤 값과도 일치하지 않으면 default에 있는 p가 실행된 후 s가 실행된다.

29 switch case 문 switch case 문의 일반 형식 조건문 switch ( a ) { case k1: p1;
              break;     case k2:  p2;      ...     case kn:  pn;     default:  p; } s;         a: 수식 k1, k2, ..., kn: 상수 p1, p2, ..., pn, p: 명령문 s: switch case 문 다음에 위치하는 명령문

30 switch case 문 순서도 조건문 a== k1 a== k2 a== kn s p1 … pn p true false
break

31 [실습하기 4-5] switch case 문-결과

32 [실습하기 4-5] switch case 문 - 프로그램
01  import java.io.*; 02  03  class Jv_4_5 { 04     public static void main(String[] args)   05     throws java.io.IOException { 06     int jumsu; 07     char hakjum; 08     String iput; 09  10     System.out.println("***** result *****"); 11     System.out.print("Input jumsu: "); 12  13     InputStreamReader kkk = new InputStreamReader(System.in); 14     BufferedReader bbb = new BufferedReader(kkk); 15     iput = bbb.readLine(); 16     jumsu = Integer.parseInt(iput); 17  

33 [실습하기 4-5] switch case 문 - 프로그램
18     switch(jumsu/10) 19       { 20        case 10: hakjum = ‘A'; 21             break; 22        case 9:  hakjum = ‘A'; 23             break; 24        case 8:  hakjum = ‘'B'; 25             break; 26        case 7:  hakjum = ‘C'; 27             break; 28        case 6:  hakjum = ‘'D'; 29             break; 30        default: hakjum = ‘F'; 31             break; 32       } 33     System.out.println(“Hakjum: " + hakjum); 34   } 35  }

34 [실습하기 4-5] switch case 문 - 해설
01행: import 문과 기본 패키지 import 문을 사용하는 것은 패키지(package) 또는 클래스를 자바 프로그램 내로 삽입하는 경우다. 기존의 언어가 라이브러리 형태로 제공하지만 자바 언어는 패키지 형태로 제공된다. 사용 형식은 다음과 같다. import 패키지명.클래스명;또는import 패키지명.*; 자바의 기본 패키지에는 java.lang, java.util, java.io, java.net, java.awt 등이 있다. 기본 패키지 중에서 java.lang 패키지는 다른 패키지와 다르게 import 문을 사용하지 않아도 자동적으로 포함된다. import java.io.*;에서 java.io.* 패키지는 입출력 관련 클래스다. 08행: String iput;에서 문자열인 String형 변수 iput를 선언한 것이다. 입력받을 데이터를 저장하기 위한 변수다. 13~16행: 키보드로 입력받기 위한 명령문. InputStreamReader kkk = new InputStreamReader(System.in);에서는 입력받은 바이트 스트림을 문자 스트림으로 변환하기 위한 생성자다. 여기서 System.in은 메소드다.

35 [실습하기 4-5] switch case 문 - 해설
BufferedReader bbb = new BufferedReader(kkk);에서는 문자 스트림의 입력시     에 버퍼를 사용하기 위한 생성자다. iput = bbb.readLine();에서는 버퍼에 있는 내용을 한줄씩 읽어 오는 명령문이다. jumsu = Integer.parseInt(iput);에서는 Integer.parseInt( ) 메소드에 의해서 iput     에 저장되어 있는 문자열을 정수형으로 변환하여 정수형 변수 jumsu에 대입한다. 18~31행: switch case 문. switch case 문은 다중 선택시 사용하는 명령문이다. 어떤 특정한 학생의 학점 등급(A, B, C, D, F 또는 a, b, c, d, f)을 키보드로 입력받아서 그 점수에 해당되는 등급 점수를 화면에 출력하는 프로그램을 작성한다. 학점 A:점수가 90~100점, B: 80~89점, C:70~79, D:60~69, F:59점 미만으로 분류한다. 예를 들면, 프롬프트에서 입력된 학점 등급이 B인 경우에는 점을 출력한다.

36 반복문 for 문 for 문 () 안에 있는 첫 번째 수식 p는 변수의 초기값을 설정하는 부분으로 최초로 한번만 실행된다. 이 때의 수식 p는 1개 이상의 식이 되며 2개 이상일 때는, (콤마)로 분리한다. 다음으로 조건식 q가 참인지 거짓인지를 검사한다. 결과가 참(0이 아닌 모든 값)이면 명령문 m(또는 m1, ... , mn)이 실행되고 그후 증감식 r이 계산되어 또 다시 조건식 q가 참인지 거짓인지를 검사하는 과정을 반복한다. 결과가 거짓(0의 값)이면 for문에 있는 명령문 m(또는 m1, ... ,mn)이 실행되지 않고 곧바로  명령문 s가 실행된다. for 문의 일반 형식   for ( p; q; r)           m;   s;      for ( p; q; r)      {     m1;     m2;     ...     mn;   } s; p: 초기값 q: 조건식 r: 증감식 m, m1, m2, ... ,  mn: 명령문 s;for 문 다음에 위치하는 명령문

37 반복문 for 문 순서도 m true false s q r m1;m2;…mn; true false s q p r

38 while 문은 먼저 조건식을 검사한 후 참일때 반복 실행하므로 거짓일 경우 한번도 실행되지 않을 수 있다.
반복문 while 문 while 문 () 안에 있는  수식 q는 조건식으로서 참인지 거짓인지를 검사한다. 결과가 참(0이 아닌 모든 값)이면 명령문 m(또는 m1, ... ,mn)이 실행되고 또 다시 조건식 q가 참인지 거짓인지를 검사하는 과정을 반복한다. 결과가 거짓(0의 값)이면 while 문에 있는 명령문 m(또는 m1, ... ,mn)이 실행되지 않고 곧 바로 명령문 s가 실행된다. while 문은 먼저 조건식을 검사한 후 참일때 반복 실행하므로 거짓일 경우 한번도 실행되지 않을 수 있다. while 문의 일반 형식 while ( q )        m;                              s;                                      while ( q ) {         m1;         m2;          ...         mn; } s;                                                                      q: 조건식 m, m1, m2, ... ,mn: 명령문 s: while문 다음에 위치하는 명령문    

39 반복문 while 문 순서도 m true q s m1;m2;…mn; true false q s false

40 do~while 문은 while 문과는 달리 맨 마지막에 조건을 검사하므로 적어도 한번은 실행된다.
반복문 do~while 문 do~while 문은 먼저 m(또는 m1, ... ,mn)을 한번 실행한 후 조건식 q가 참인지 거짓인지를 검사한다. 결과가 참(0이 아닌 모든 값)이면 명령문 m(또는 m1, ... ,mn)을 반복 실행되고 또 다시 조건식 q가 참인지 거짓인지를 검사하는 과정을 반복한다.  결과가 거짓(0의 값)이면 do~while 문 다음에  위치한 명령문 s가 실행된다. do~while 문은 while 문과는 달리 맨 마지막에 조건을 검사하므로 적어도 한번은 실행된다. do~while 문의 일반 형식 do     m;    while ( q ) s;                                      do {         m1;         m2;          ...         mn; } while ( q ) { s; q: 조건식 m, m1, m2, ... ,mn: 명령문 s: do~while문 다음에 위치하는 명령문    

41 반복문 do~while 문 순서도 false m1;m2;…mn; s q true false m s q true

42 [실습하기 4-6] 반복문(for문, while문, do~while문) -결과

43 [실습하기 4-6] 반복문(for문, while문, do~while문) - 프로그램
01  class Jv_4_6 { 02   public static void main(String[] args) { 03     int n, hap; 04  05     System.out.println("***** result *****"); 06     n=hap=0; 07     for(n=1; n<=100; n++) 08        hap+=n; 09     System.out.println(" = " + hap + "(for statement)"); 10     n=1; 11     hap=0; 12     while(n<=100) 13       { 14         hap+=n; 15         n++; 16       } 17     System.out.println(" = " + hap + "(while statement)"); 18 

44 [실습하기 4-6] 반복문(for문, while문, do~while문) - 프로그램
19     n=1; 20     hap=0; 21     do { 22      hap+=n; 23      n++; 24        } while(n<=100); 25     System.out.println(" = " + hap + "(do~while statement)"); 26   } 27  }

45 [실습하기 4-6] 반복문(for문, while문, do~while문) - 해설
07~08행: for문. n의 초기치를 1로 하고 1씩 증가시켜 100까지 반복한다. 반복의 내용은 hap+=n;에  의해 hap에 n의 합계가 구해진다. n의 값이 1증가되어 n<=100의 조건이 참인지 비교한다. 참이면 같은 방법으로 n의 값이 2,3,...,100까지 변화시켜 hap에 더해간다. 거짓이면 for 문을 벗어난다. 10~16행: while 문. for 문과의 차이점은 초기값을 줄 수 없기 때문에 while 문 시작하기 전에 n=1을 먼저 실행한다. n의 증가도 while 문 내에서 이루어진다. 19~24행: do~while 문. do~while 문은 while 문과는 달리 맨 마지막에 조건을 검사하므로 적어도 한번은 실행된다.

46 [실습하기 4-7] 중첩된 for문 이용 구구단 출력 -결과

47 [실습하기 4-7] 중첩된 for문 이용 구구단 출력 - 프로그램
01  class Jv_4_7 { 02   public static void main(String[] args) { 03     int i, j; 04  05     System.out.println("***** result *****\n"); 06     for(i=1; i<10; i++) 07      { 08        for (j=1; j<10; j++) 09        System.out.print(i + "*" + j + "=" + i*j + "  "); 10        if (j==10) 11           System.out.print("\n"); 12      } 13   } 14  }

48 [실습하기 4-7] 중첩된 for문 이용 구구단 출력 - 해설
06~12행: 중첩된 for 문. i=1일 때 j=1부터 9까지 실행하고 줄을 바꾸고, i=2일 때 j=1부터 9까지 실행하고 줄을 바꾸고, 반복하여 i=9까지 실행한다.

49 분기문 break 문 break 문은 switch case 문, for 문, while 문, do~while 문의 제어를 벗어나기 위해 사용하는 명령문이다. 1개의 break 문에 의해서는 단 하나의 루프(loop)만 벗어나므로 중첩된 루프에서는 중첩된 수만큼의 break 문이 필요하다. break 문은 가장 가까운 곳에 있는 한 루프만을 벗어난다. break 문의 일반 형식 break;

50 분기문 continue 문 continue 문은 for 문, while 문, do~while 문에서 다음 반복을 실행하기 위해 사용하는 명령문이다. continue 문을 실행하게 되면 continue 다음 문을 실행하지 않고 바로 그 루프의 선두로 되돌아가서 실행한다. continue 문을 만나면 for 문에서는 증감식을 실행하게 하고, while 문이나 do~while문에서는 조건식을 검사하게 한다. continue 문의 일반 형식 continue;

51 배열 객체 배열 객체의 개념 배열(array)이란 하나의 변수를 만들어 사용한 단순 변수와는 달리 첨자를 이용하여 하나의 변수로 여러 개의 변수를 표현할 수 있다. 5개의 변수를 표현하는 경우에 단순 변수에서는 5개의 표현을 전부 나타내야 하지만 배열에서는 간단히 표현할 수 있다. C 등 다른 프로그램 언어에서는 데이터 형을 선언하여 사용하기 때문에 동일한 데이터 형을 여러 개 묶어서 사용한다는 개념도 갖고 있지만 자바에서는 데이터형이 아니라 객체다. 배열의 차원(dimension)이라는 개념은 배열명 다음 또는 데이터형 다음의 [](대괄호)의 개수에 따라서 1차원 배열, 2차원 배열 등으로 나누어진다.

52 ‘배열명[]’에서 [](대괄호)의 개수가 한 개인 것을 1차원 배열이라 한다.
배열 객체 1차원 배열 ‘배열명[]’에서 [](대괄호)의 개수가 한 개인 것을 1차원 배열이라 한다. 1차원 배열 변수 선언하는 일반 형식은 다음과 같다. [] 내에는 첨자 사용을 지정하지 않아도 된다. 배열 선언만으로는 배열이 메모리에 할당되지 않는다. 자료형 배열변수명[]; 또는 자료형[] 배열변수명; 1차원 배열 선언에서 초기화한 형태는 다음과 같다. 자료형 배열변수명[] = {초기값1, 초기값2, ... , 초기값n}; 또는 자료형[] 배열변수명 = {초기값1, 초기값2, ... , 초기값n};

53 1차원 배열 객체를 동시에 선언하고 생성하는 일반 형식은 다음과 같다.
배열(array) 객체는 자바로 일정한 그룹의 요소들을 한데 묶어서 배열을 만들기 위해 사용하는 객체다. new 연산자를 이용해 새로운 배열을 만든다. 1차원 배열 객체를 생성하는 일반 형식은 다음과 같다. 배열 객체 생성으로 배열이 메모리에 할당된다. 배열명 = new 데이터형[배열크기]; 1차원 배열 객체를 동시에 선언하고 생성하는 일반 형식은 다음과 같다. 데이터형 배열명[] = new 데이터형[배열크기]; 또는 데이터형[] 배열명 = new 데이터형[배열크기];

54 2차원 배열 2차원 배열의 개념과 선언: ‘배열명[ ][ ]’에서 [](대괄호)의 개수가 2개 인 것을 2차원 배열이라 한다.
배열 객체 2차원 배열 2차원 배열의 개념과 선언: ‘배열명[ ][ ]’에서 [](대괄호)의 개수가 2개 인 것을 2차원 배열이라 한다. 2차원 배열 객체를 생성하는 일반 형식은 다음과 같다. 배열 객체 생성으로 배열이 메모리에 할당된다. 배열명 = new 데이터형[배열크기][배열크기]; 2차원 배열의 개념과 선언: ‘배열명[ ][ ]’에서 [](대괄호)의 개수가 2 개 인 것을 2차원 배열이라 한다. 데이터형 배열명[][] = new 데이터형[배열크기][배열크기]; 또는 데이터형[][] 배열명 = new 데이터형[배열크기][배열크기];

55 [실습하기 4-8] 1차원 배열을 이용 -결과

56 [실습하기 4-8] 1차원 배열을 이용 - 프로그램 01  class Jv_4_10 { 02   public static void main(String[] args) { 03    int[] ken = {10, 20, 30, 40, 50}; 04    int i, ave, sum = 0; 05    System.out.println("***** result *****"); 06    for(i=0; i<5; i++) 07        System.out.println("ken[" + i + "] = " + ken[i]); 08    for(i=0; i<5; i++) 09       sum += ken[i]; 10    ave = sum/5; 11    System.out.println("sum =" + sum); 12    System.out.println("average = " + ave); 13    System.out.println("\n***** result *****"); 14    int boo[] = new int[5];   

57 [실습하기 4-8] 1차원 배열을 이용 - 프로그램 15    boo[0] = 10; 16    boo[1] = 20; 17    boo[2] = 30; 18    boo[3] = 40; 19    boo[4] = 50; 20    ave = 0; 21    sum = 0;  22    for(i=0; i<5; i++) 23        System.out.println("boo[" + i + "] = " + boo[i]); 24    for(i=0; i<5; i++) 25       sum += boo[i]; 26    ave = sum/5; 27    System.out.println("sum =" + sum); 28    System.out.println("average = " + ave); 29    } 30  }

58 [실습하기 4-8] 1차원 배열을 이용 - 해설 03행: 1차원 배열을 선언하고 일괄적으로 초기화한 형태다. 배열 변수 선언하는 형식은 다음과 같다. [] 내에는 첨자 사용을 지정하지 않아도 된다. 배열 선언만으로는 배열이 메모리에 할당되지 않는다. int[] ken = {10, 20, 30, 40, 50}; 또는 int ken[] = {10, 20, 30, 40, 50};라고 사용 가능하다. 즉, 1차원 배열을 선언하고 5개의 배열 요소 각각에 값을 대입하여 초기화한 형태다. 06~07행: for(i=0; i<5; i++) System.out.println("ken[" + i + "] = " + ken[i]);에서는 for 문으로서 배열 요소 0에서 4까지 5회 반복한다. 08~09행: for(i=0; i<5; i++) sum += ken[i];에서는 for 문으로서 배열 요소 0에서 4까지 5회 반복한다. i = 0인 경우에 sum = sum + ken[0];이 실행되고 i = 1인 경우에 sum = sum + ken[1];이 실행되고 i = 2인 경우에 sum = sum + ken[2];이 실행되고 i = 3인 경우에 sum = sum + ken[3];이 실행되고 i = 4인 경우에 sum = sum + ken[4];이 실행된다.

59 [실습하기 4-8] 1차원 배열을 이용 - 해설 14행: int boo[] = new int[5];에서 배열명은 boo이고 데이터형은 int, 즉 정수형이고 배열 크기는 5이다. 1차원 배열 객체를 동시에 선언하고 생성하는 형식이다. 15~19행: 5개의 배열 요소 각각에 값을 대입하는 형태다. 22~23행: for(i=0; i<5; i++) System.out.println("boo[" + i + "] = " + boo[i]);에서는 for 문으로서 배열 요소 0에서 4까지 5회 반복한다. 24~25행: for(i=0; i<5; i++) sum += boo[i];에서는 for 문으로서 배열 요소 0에서 4까지 5회 반복한다. i = 0인 경우에 sum = sum + boo[0];이 실행되고 i = 1인 경우에 sum = sum + boo[1];이 실행되고 i = 2인 경우에 sum = sum + boo[2];이 실행되고 i = 3인 경우에 sum = sum + boo[3];이 실행되고 i = 4인 경우에 sum = sum + boo[4];이 실행된다.

60 [실습하기 4-9] 2차원 배열을 이용 -결과

61 [실습하기 4-9] 2차원 배열을 이용 - 프로그램 01  class Jv_4_11 { 02  public static void main(String[] args) { 03    String title[] = {"JAVA ","HTML ","C   ","TOTAL"}; 04    int jumsu[][] = {{77, 66, 88}, {90, 80, 100}, {65, 75, 85}}; 05    int i, j, total; 06  07    System.out.println("*** sung juk pyo ***\n"); 08    for(i=0; i < title.length; i++) 09           System.out.print(title[i] + " "); 10    System.out.println();

62 [실습하기 4-9] 2차원 배열을 이용 - 프로그램 11    for(i=0; i<3; i++) 12       { 13         total=0; 14         for(j=0; j<3; j++) 15        { 16          System.out.print(jumsu[i][j] + "    "); 17          total = total + jumsu[i][j]; 18        } 19         System.out.println(total); 20       } 21    } 22  }

63 [실습하기 4-9] 2차원 배열을 이용 - 해설 03행: 1차원 문자열 배열. 예를 들면, String title[] = {"JAVA ","HTML ","C   ","TOTAL"};에서 1차원 문자열 배열을 선언하고 4개의 배열 요소 각각에 값을 대입하여 초기화한 형태다. 04행: 2차원 배열. ‘배열명[ ][ ]’에 있어서 [ ](대괄호)의 개수가 2개 인 것을 2차원 배열이라 한다. int jumsu[][] = {{77, 66, 88}, {90, 80, 100}, {65, 75, 85}};이면 방의 개수는 가로 3, 세로 3인 총 9개의 빈 방이 생성되며 그 이름들은 다음과 같다. 2차원 배열을 초기화하려면 각각의 2차원 배열에 값을 직접 대입하면 된다. jumsu[0][0] = 77;jumsu[0][1] = 66;jumsu[0][2] = 88; jumsu[1][0] = 90;jumsu[1][1] = 80;jumsu[1][2] = 100; jumsu[2][0] = 65;jumsu[2][1] = 75;jumsu[2][2] = 85; 08~09행: title.length는 배열의 크기를 의미한다. 여기서는 for 문으로서 배열 요소 0에서 3까지 4회 반복한다. 11~20행: for 문으로서 배열 요소 0에서 2까지 3회 반복한다. 1행, 2행에 대해서도 마찬가지다. 즉 배열 요소 jumsu[i][j]에 대해서 출력한다. 이 때 각 행마다 배열 요소를 모두 합하여 그 결과를 출력한다.

64 Thank you hanbitbook.co.kr


Download ppt "자바 프로그래밍 기초 4장. 제어문과 배열 객체 hanbitbook.co.kr."

Similar presentations


Ads by Google