4 장 . 자바의 기본 구조 ii : 선택 , 반복 , 배역
DESCRIPTION
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역. Java. public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt (a1[0]); b = Integer.parseInt (a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/1.jpg)
4장. 자바의 기본 구조 II :선택, 반복 , 배역
1
public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System.out.println(" 두수의 합은 " + sum + " 입니다 "); }}
JAVA
![Page 2: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/2.jpg)
프로그램의 논리 구조인 선택과 반복 논리에 대해 학습한다 .
가장 많이 사용되는 if 문의 종류와 사용방법에 관해 학습하고 , 다중 선택이 가능한 switch 문에 대해서도 학습한다 .
반복 논리를 제공하는 while 문 , do-while 문 , for 문에 대해 구조와 사용방법을 학습한다 .
선택문이나 반복문 내에서 제어를 이동시키기 위한 break, continue, re-turn 문의 사용방법에 관해 학습한다 .
배열의 생성과 사용방법에 관해 학습한다 .
학습목표
2
![Page 3: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/3.jpg)
section 1 선택문 - 1-1 if 문
- 1-2 switch 문
section 2 반복문 - 2-1 while 문
- 2-2 do-while 문
- 2-3 for 문
- 2-4 반복문의 비교와 중첩
section 3 제어의 이동 - 3-1 break 문
- 3-2 continue 문
- 3-3 return 문
목차
3
![Page 4: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/4.jpg)
section 4 배열 - 4-1 배열의 선언과 생성
- 4-2 배열의 초기화 및 사용
목차
4
![Page 5: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/5.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
5
자바 언어는 선택 논리를 대표하는 구문으로서 다양한 형태의 if 문을 제공
단순 if 문 (if)- 조건에 따라 단순히 한 단위의 특정 작업을 수행해야 하는 경우 사용
96 page
![Page 6: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/6.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
6
단순 if 문 (if)
if ( num < 0 ) System.out.println(" 음수입니다 "); 문장이 한 문장일 경우 “ { }”로 묶지 않아도 된다 .
if ( (num > 0) && (num % 2 == 0) ){ System.out.println(" 양수입니다 "); System.out.println(" 짝수입니다 ");}
문장이 한 문장보다 많으면 반드시 “ { }”로 묶는다 .
![Page 7: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/7.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
7
실습예제- 다음 프로그램은 입력된 값이 음수일 경우에만 메시지를 출력하는 프로그램이다 . 조건절이
참일 경우에 수행할 문장이 한 문장일 경우에는 “ {}” 를 사용하지 않아도 된다 .
SimpleIFTest1.java0102030405060708
public class SimpleIFTest1 { public static void main(String args[]) { int count = Integer.parseInt(args[0]); if (count < 0) System.out.println(count + " 은 ( 는 ) 음수입니다 "); }}
입력된 값이 0보다 작은지 검사조건이 참일 경우에만 수행
![Page 8: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/8.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
8
프로그램 설명- 00 : 프로그램 실행 시 입력되는 매개변수는 무조건 String( 문자열 ) 클래스의 객체 배열에
저장된다 . 매개변수 순서에 따라 배열에 입력된다 . - 04 : 실행 시 입력받은 문자열 매개변수를 정수로 바꾸기 위해 사용하는 클래스 메소드이다 .
클래스 메소드에 대해서는 2 부에서 자세하게 설명한다 . 여기서는 단순히 문자열배열의 한 항목을 정수로 바꾸는 기능을 한다고 이해하면 된다 .
- 05 : 단순 if 문의 조건문으로 결과는 항상 참 또는 거짓이 된다 .- 06 : 조건절이 참일 경우 수행하는 문장이다 . 조건절이 거짓이 될 경우 이 프로그램은
아무런 출력 없이 프로그램이 종료된다 .
![Page 9: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/9.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
9
![Page 10: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/10.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
10
실습예제- 다음 프로그램은 성적을 입력받아 90 점 이상이면 “축하합니다 A 학점을 취득하셨습니다”
를 출력하는 프로그램이다 . 또한 입력점수와 상관없이 프로그램을 종료하기 전에 “감사합니다”를 출력하고 있다 .
SimpleIFTest1.java010203040506070809101112
public class SimpleIFTest2 { public static void main(String args[]) { int grade = Integer.parseInt(args[0]); if (grade >= 90) { System.out.println(" 축하합니다 "); System.out.println("A 학점을 취득하셨습니다 "); } System.out.println(" 감사합니다 "); }}
입력된 값이 90 이상인지 검사
조건과 상관없이 무조건 수행
조건이 참일경우에만 수행
![Page 11: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/11.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
11
프로그램 설명- 05 : 입력된 점수가 90 이상 ( 크거나 같으면 ) 이면 참이 되는 조건절이다 .- 06~09 : 조건절이 참일 경우 수행하는 문장이다 . 조건의 결과에 따라 수행해야 하는
문장이 여러 문장일 경우에는 반드시 “ {}” 로 문장을 묶어주어야 한다 .- 10 : 조건절의 결과에 상관없이 수행되는 문장이다 .
![Page 12: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/12.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
12
이중 if 문 (if-else)- 조건식의 결과 ( 참 또는 거짓 ) 에 따라 특정 작업을 수행해야 하는 경우 사용
99 page
![Page 13: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/13.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
if ( num % 2 == 0 ){ System.out.println(" 입력된 수 : " + num); System.out.println(" 짝수입니다 ");}else { System.out.println(" 입력된 수 : " + num); System.out.println(" 홀수입니다 ");}
1-1 if 문 1 선택문
13
이중 if 문 (if-else)if ( score >= 60 ) System.out.println(" 학점취득 성공 ");else System.out.println(" 학점취득 실패 ");System.out.println(" 학점취득여부와 상관없이 무조건 수행됨 ");
여러 문장일 경우 “ { }”로 묶는다 .
선택문과 상관없는 문장
![Page 14: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/14.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
14
실습예제- 성적을 입력받아 90 이상이면 “ A 학점 취득 성공”을 출력하고 아니면 “ A 학점 취득 실패”
를 출력하는 프로그램이다 . 또한 점수와 상관없이 항상 마지막에는 “감사합니다”를 출력한다 .
DoubleIFTest.java0102030405060708091011
public class DoubleIFTest { public static void main(String args[]) { int grade = Integer.parseInt(args[0]); if (grade >= 90) System.out.println("A 학점 취득 성공 "); else System.out.println("A 학점 취득 실패 "); System.out.println(" 감사합니다 "); }}
조건이 참일 경우 수행조건이 거짓일 경우 수행
조건과 상관없이 무조건 수행
![Page 15: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/15.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
15
프로그램 설명- 06 : if 문에서 사용된 조건절이 참일 경우에 수행되는 문장이다 . - 08 : if 문에서 사용된 조건절이 거짓일 경우에 수행되는 문장이다 . - 09 : if 문에서 사용된 조건절과는 관계 없이 무조건 수행되는 문장이다 .
![Page 16: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/16.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
16
다중 if 문 (if-else if)- 조건이 거짓일 경우 다시 선택조건을 제시하여 조건의 결과에 따라 처리하며 , 결과가
거짓일 경우 다시 선택조건을 반복적으로 제시
101 page
![Page 17: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/17.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
17
다중 if 문 (if-else if)
if ( score >= 90 ) System.out.println("A 학점취득 성공 ");else if ( score >= 80 ) System.out.println("B 학점취득 성공 ");else if ( score >= 70 ) System.out.println("C 학점취득 성공 ");else if ( score >= 60 ) System.out.println("D 학점취득 성공 ");else System.out.println(" 학점취득 실패 ");
![Page 18: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/18.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
18
실습예제- 조건절의 결과가 거짓일 때 else if 절을 이용하여 다시 조건을 검사한다 . 마지막에 더 이상
비교할 조건이 없을 경우에는 else 절만 사용하여 기술한다 .MultiIFTest.java01020304050607080910111213141516
public class MultiIFTest { public static void main(String args[]) { int grade = Integer.parseInt(args[0]); if (grade >= 90) System.out.println("A 학점 취득 "); else if (grade >= 80) System.out.println("B 학점 취득 "); else if (grade >= 70) System.out.println("C 학점 취득 "); else if (grade >= 60) System.out.println("D 학점 취득 "); else System.out.println(" 학점 취득 실패 "); }}
다시 조건 검사다시 조건 검사다시 조건 검사모든 조건이 거짓일 때 수행
![Page 19: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/19.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
19
프로그램 설명- 07 : 첫 번째 조건절의 결과가 거짓일 경우 다시 조건을 검사한다 . - 09 : 첫 번째 , 두 번째 조건절의 결과가 거짓일 경우 다시 조건을 검사한다 . - 11 : 첫 번째 , 두 번째 , 세 번째 조건절의 결과가 거짓일 경우 다시 조건을 검사한다 . - 13 : 더 이상 조건이 없을 경우는 else 절로 기술한다 . 더 이상 조건을 필요로 하지 않을
경우 마지막에는 else 절을 이용하여 기술한다 .
![Page 20: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/20.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
20
내포된 if 문- if 선택문 내에 또 다른 if 문이 내포
103 page
![Page 21: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/21.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
이중 if 문 (if-else)
if (score >= 90) if (score >= 95) System.out.println("A+ 학점입니다 "); else System.out.println("A- 학점입니다 ");else if (score >= 60) if (score >= 80) System.out.println("B 학점입니다 "); else System.out.println("C 또는 D 학점입니다 "); else System.out.println(" 학점취득 실패 ");
1-1 if 문 1 선택문
21
if (score > 60) if(score > 70) if(score > 80) if(score > 90) System.out.println("A 학점 ");else System.out.println(" 학점취득실패 ");
내포된 관계에서 else는 가장 가까운 if의 else이다 . 내포된 관계의 if문을 사용할 때는 들여쓰기를 명확하게 하는 것이 좋다 .
들여쓰기가 잘못된 예첫 if문의 else로 보이지만 마지막 if문의 else이다 .
![Page 22: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/22.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
22
실습예제- 프로그램 실행 시 성적을 입력받아 성적에 따라 해당 학점을 출력하는 프로그램을 내포된 if
문을 사용하여 작성하였다 . 학점을 A~B 는 우수학점군으로 C~D 는 보통학점군으로 분류하여 출력하도록 프로그램을 작성하였다 .
NestedIFTest.java01020304050607080910111213
public class NestedIFTest { public static void main(String args[]) { int score = Integer.parseInt(args[0]); if (score >= 80) { System.out.println(" 우수학점군에 속합니다 "); if (score >= 90) System.out.println("A 학점입니다 "); else System.out.println("B 학점입니다 "); } else
if ~ else절 if ~ else절
![Page 23: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/23.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
23
실습예제NestedIFTest.java1415161718192021222324252627
{ if (score >= 60) { System.out.println(" 보통학점군에 속합니다 ") if (score >= 70) System.out.println("C 학점입니다 "); else System.out.println("D 학점입니다 "); } else System.out.println(" 학점취득 실패 "); } } }
if ~ else절 if ~ else절
![Page 24: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/24.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-1 if 문 1 선택문
24
프로그램 설명- 08~11 : 05 번 문장의 if 조건절이 참인 경우에 수행되는 내포된 if-else 문이다 . 조건절의
결과에 따라 수행할 문장이 여러 개일 경우 반드시 “ {}” 로 묶어서 표현해야 한다 .- 15 : 13 번 else 문장 내에 포함된 if 문이다 . 내포된 if 문은 특정 형식을 가지지 않는다 .
다양한 형태로 내포되어 사용될 수 있다 .
![Page 25: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/25.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
25
자바에서는 다중 선택 기능을 제공하기 위해 switch 문을 제공
Switch 문- 수식 결과의 값에 따라 서로 다른 처리를 기술할 때 유용
- if-else-if 문을 사용하여 다중 선택을 기술할 수도 있지만 switch 는 간결한 구문으로 다중 선택의 기능을 제공
switch 문의 수행- 우선 정수식이 평가되고 평가된 값에 적합한 case 절이 수행
- Case 절의 정수 값은 반드시 상숫값 , 변수가 사용될 수 없음
- break 문을 만나면 switch 문을 빠져나감
- 평갓값에 맞는 case 문이 없을 경우에는 default 로 지정된 문장을 수행하고 case 문을 종료
![Page 26: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/26.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
26
형식 : switch 문
107 page
![Page 27: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/27.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
27
형식 : switch 문
swith (num){case 1 : System.out.println("num 의 값은 1 입니다 "); break;case 2 : System.out.println("num 의 값은 2 입니다 "); break;case 3 : System.out.println("num 의 값은 3 입니다 "); break;case 4 : System.out.println("num 의 값은 4 입니다 "); break;default : System.out.println("num 의 값은 1-4 사이의 값이 아닙니다 "); break;}
num의 값이 1~4 사이의 값이 아닐 경우 수행
![Page 28: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/28.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
28
실습예제- 다음 프로그램은 사용자로부터 월을 입력받아 해당하는 계절을 출력하는 프로그램이다 .
case 절에서 처리할 내용이 없을 경우에는 그대로 비워둔다 .SwitchTest1.java010203040506070809101112131415
public class SwitchTest1 { public static void main(String args[]) { int month = Integer.parseInt(args[0]); String MtoS; switch (month) { case 12: case 1: case 2: MtoS = " 겨울입니다 ."; break; case 3: case 4: case 5:
case 절을 하나의 절로 묶어 수행
switch 절
![Page 29: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/29.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
29
실습예제SwitchTest1.java161718192021222324252627282930313233
MtoS = " 봄입니다 ."; break; case 6: case 7: case 8: MtoS = " 여름입니다 ."; break; case 9: case 10: case 11: MtoS = " 가을입니다 ."; break; default: MtoS = "12 개월 이내의 달이 아닙니다 ."; } System.out.println(month + " 월은 " + MtoS ); }}
default 절
![Page 30: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/30.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
30
프로그램 설명- 06 : switch 절의 정수식의 값에 따라 적합한 case 절을 수행한다 . - 08~12 : case 절의 값이 12,1,2 일 경우를 하나의 절로 묶어서 수행한다 . - 28~29 : default 절은 case 절에 하나도 해당하는 경우가 없을 경우 수행한다 .
![Page 31: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/31.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
31
실습예제- 다음 프로그램은 앞에서 switch 문으로 작성된 프로그램을 if-else-if 문을 사용하여 작성한
프로그램이다 . 사용자는 응용에 적합한 선택문을 사용하여 프로그램을 작성하여야 한다 .SwitchTest1.java010203040506070809101112131415161718
public class SwitchTestIF { public static void main(String args[]) { int month = Integer.parseInt(args[0]); String MtoS; if (month == 12 || month == 1 || month == 2) MtoS = " 겨울입니다 ."; else if (3 <= month && month <= 5) MtoS = " 봄입니다 ."; else if (6 <= month && month <= 8) MtoS = " 여름입니다 ."; else if (9 <= month && month <= 11) MtoS = " 가을입니다 ."; else MtoS = "12 개월 이내의 달이 아닙니다 ."; System.out.println(month + " 월은 " + MtoS ); }}
case 절에 해당하는 내용을 if문의조건절로 지정하였다 .
switch문의 default 절을 if-else의 마지막 else로 지정하였다 .
![Page 32: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/32.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
1-2 switch 문1 선택문
32
![Page 33: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/33.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2 반복문
33
반복 논리- 어떤 작업이 반복적으로 수행될 때를 표현하는 방법
- while, do-while, for 문을 제공
- 모든 반복문들은 조건식이 만족하는 동안 지정된 부분을 반복 수행
![Page 34: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/34.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
34
while 문- 특정 조건이 만족하는 동안 지정된 영역을 반복할 수 있는 기능
112 page
![Page 35: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/35.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
35
while 문int a = 10, b = 20;while(a > b) System.out.println(" 이 문장은 영원히 나타나지 않는다 ");
while ( number <= 100 ){ sum = sum + number; number = number + 1; System.out.println(number);}
boolean flag = true;while ( flag ){ System.out.println(" 이 부분은 영원히 반복된다 ");}
조건이 거짓이기 때문에 수행될 수 없다
무한 반복된다 .
조건을 변화시키는 문장이 반복 부분에 포함되는 것이 일반적이다 .
![Page 36: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/36.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
36
실습예제- 다음 프로그램은 1 부터 10 까지의 합을 구하는 프로그램이다 . 특정 변수의 값을 1 씩
증가시켜 합을 구하고 있다 .WhileTest1.java010203040506070809101112
public class WhileTest1 { public static void main(String args[]) { int hap=0, count=1; while (count <= 10) { hap = hap + count; count = count + 1; } System.out.println("1 부터 10 까지의 합은 "+ hap + " 입니다 "); }}
조건이 참인 동안 반복
![Page 37: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/37.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
37
프로그램 설명- 05 : count 값이 10 보다 작거나 같을 때까지를 반복 조건으로 제시하였다 . 이 조건이
참이면 반복 부분을 한 번 수행하고 다시 조건을 검사한다 .- 06~09 : 반복문의 조건이 참일 동안 수행되는 부분이다 . 반복문의 조건을 거짓으로 만들기
위해 count 의 값을 1 씩 증가시키고 있다 . 반복이 10 번 수행되면 count 의 값이 11 이 되어 반복문의 조건이 거짓이 되어 반복문이 종료된다 .
- 10 : while 문의 조건이 거짓이 되어 while 문을 벗어나면 수행된다 .
![Page 38: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/38.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
38
실습예제- 다음 프로그램은 구구단 3 단을 출력하는 프로그램이다 .
WhileTest2.java010203040506070809101112
public class WhileTest2 { public static void main(String args[]) { int x = 3; int y = 1; while (y <= 9) { System.out.println(x + " * " + y + " = " + x * y); y++; } }}
while문
![Page 39: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/39.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
39
프로그램 설명- 06 : y 값이 9 보다 작거나 같을 때까지를 조건으로 지정한다 . - 09 : y 값을 증가시켜서 while 문의 조건을 거짓으로 만든다 .
![Page 40: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/40.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
40
실습예제- 다음 프로그램은 두 수의 중간 값을 구하는 프로그램이다 . 이 프로그램의 while 문은 반복
부분이 없는 프로그램이다 .WhileTest3.java 010203040506070809
public class WhileTest3 { public static void main(String args[]) { int i = 10; int j = 20; while (++i < --j); System.out.println("10 과 20 사이의 중간 값은 " + i + " 입니다 "); }}
반복 부분이 없는 while문
![Page 41: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/41.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-1 while 문2 반복문
41
프로그램 설명- 00 : while 문의 조건식 내에 증감 연산자를 사용하였다 . while 문의 반복 부분이 존재하지
않기 때문에 라인 종료기호 (;) 를 while 문 끝에 추가하였다 . i 값과 j 값이 1 씩 증가 감소하면서 중간 값을 구하고 있다 . 정수의 중간 값을 구하는 프로그램이므로 짝수만을 사용하였다 .
![Page 42: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/42.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
42
do-while 문- 반복될 문장이 먼저 실행되고 조건이 검사되는 반복문
- 조건을 나중에 검사함으로서 반복될 문장이 최소 한 번은 실행
116 page
![Page 43: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/43.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
43
do-while 문
int a = 10, b = 20;do System.out.println("do-while 문은 반복 부분이 최소한 한번은 수행 된다 ");while (a > b)
do{ System.out.println("******* 메뉴 *******"); System.out.println("1. while 반복문 "); System.out.println("2. do-while 반복문 "); System.out.println("3. for 반복문 "); System.out.println(" 끝 : 100 입력 ");} while(input != 100)
처음 한 번은 무조건 수행
do while문은 메뉴를 나타낼 때 적합하다 .
![Page 44: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/44.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
44
실습예제- while 문에서도 예제로 작성해 보았던 1 부터 10 까지 더하는 프로그램을 do-while 문으로
작성해 보았다 .DoWhileTest1.java010203040506070809101112
public class DoWhileTest1 { public static void main(String args[]) { int hap=0, count=1; do { hap = hap + count; count = count + 1; } while (count <= 10); System.out.println("1 부터 10 까지의 합은 "+ hap + " 입니다 "); }}
do-while문의 조건절
do-while문 반복 부분
![Page 45: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/45.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
45
프로그램 설명- 05~08 : do-while 문에서 반복되는 문장이다 . - 09 : do-while 문의 조건절에 해당한다 . - 10 : do-while 문이 종료된 후에 수행되는 문장이다 .
![Page 46: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/46.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
46
실습예제- 사용자로부터 입력된 값이 메뉴의 범위를 벗어나면 다시 메뉴를 보여주는 프로그램이다 .
DoWhileTest2.java010203040506070809101112131415
public class DoWhileTest2 { public static void main(String args[]) throws java.io.IOException { char choice; do { System.out.println("*** 반복문 종류 설명 ***"); System.out.println(" 1. while 반복문 "); System.out.println(" 2. do-while 반복문 "); System.out.println(" 3. for 반복문 "); System.out.print(" 원하는 번호를 입력하세요 : "); choice = (char)System.in.read(); System.out.println(); } while( choice < '1' || choice > '3');
switch(choice) {
메뉴를 나타내는프로그램
키보드 입력조건절
![Page 47: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/47.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
47
실습예제DoWhileTest2.java161718192021222324252627282930313233
case '1': System.out.println("****while 반복문 ****"); System.out.println(" 조건을 먼저 검사하고 조건이 참일 경우 반복 부분을 수행하는 반복문 "); break; case '2': System.out.println("****do-while 반복문 ****"); System.out.println(" 반복 부분을 먼저 수행하고 조건을 검사한다 . 최소한 한번은 수행되는 반복문 "); break; case '3': System.out.println("****for 반복문 ****"); System.out.println(" 지정된 횟수만큼 반복 부분을 수행하는 반복문 "); break; } }}
![Page 48: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/48.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
48
프로그램 설명- 02 : 이 프로그램은 실행 시 사용자로부터 입력을 받아들이는 프로그램이다 . 자바
프로그램에서 프로그램 실행 시에 사용자로부터 입력을 받아들이기 위해서는 System.in-.read() 를 수행하여 키보드로부터 입력을 받아들여야 한다 . 또한 입출력 시 발생할 수 있는 예외처리를 반드시 해주어야 한다 . 이 두 부분은 이 책의 해당 부분에서 상세하게 설명한다 .
- 03 : 입력되는 값을 char 형의 데이터로 받아들이기 위한 변수를 선언한다 . - 05~09 : 메뉴를 나타내는 프로그램 부분이다 . - 10 : 사용자의 키보드로부터 하나의 문자를 받아들이기 위한 문장이다 . - 11 : 출력문을 매개변수 없이 사용하면 줄을 바꾸는 기능을 한다 . - 12 : 사용자로부터 입력된 문자가 ‘ 1’ 과 ‘ 3’ 사이의 숫자가 아니면 다시 메뉴를 나타낸다 .
![Page 49: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/49.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
49
![Page 50: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/50.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
50
![Page 51: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/51.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-2 do-while 문2 반복문
51
![Page 52: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/52.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
52
For 문- 지정된 횟수만큼 반복 수행하는 반복문
- 초기식 : 주로 반복 변수의 초기화를 위해 사용 . 초기식은 처음 한 번만 수행
- 조건식 : 조건을 나타내며 , 조건식이 참일 동안 반복 부분 수행
- 증감식 : 반복 부분을 수행한 후에 반드시 수행되는 문장 . 주로 조건식에 변화를 주는 수식으로 구성
![Page 53: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/53.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
53
For 문
121 page
![Page 54: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/54.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
54
For 문
121 page
![Page 55: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/55.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
55
For 문
int i, sum = 0;for ( i = 1 ; i <= 10 ; i = i + 1 ) sum = sum + i ;System.out.println("1 부터 " + i + " 까지의 합 = " + sum);
반복될 부분이 한 문장인 경우 “ { }”로 묶지 않아도 된다 .
int sum = 0;for (int i = 1 ; i <= 10 ; i = i + 1 ) sum = sum + i ;System.out.println("1 부터 " + i + " 까지의 합 = " + sum);
int i, sum = 0;for ( i = 1 ; i <= 10 ; i = i + 1 ){ sum = sum + i ; System.out.println("1 부터 " + i + " 까지의 합 = " + sum); }
반복될 부분이 여러 문장일 경우반드시 “ { }”로 묶어야 한다 .
for문 내에서 선언된 변수는 for문 내에서만 사용이 가능오류 발생
![Page 56: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/56.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
56
For 문int a, b;for ( a=1, b=10 ; a < b ; a++, b-- ){ System.out.println("a = " + a); System.out.println("b = " + b);}
초기식과 증감식에 두 개 이상의 문장을 콤마로 분리하여 사용할 수 있다 .
boolean flag = false;int i = 1;for ( ; ! flag ; ){ System.out.println(“i 의 값은 " + i + “ 입니다 "); System.out.println(“i 의 값은 " + i + “ 입니다 "); if ( i == 10 ) flag = true; i++;}
초기식과 증감식이 생략될 수 있다 .
for ( ; ; ){ .............}
모두 생략될 수 있다 . 무한 반복을 수행한다 .
![Page 57: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/57.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
57
실습예제- while 문과 do-while 문에서 작성하였던 1 부터 10 까지의 합을 구하는 프로그램을 for
문을 사용하여 작성하였다 .
ForTest1.java0102030405060708091011
public class ForTest1 { public static void main(String args[]) { int i, sum=0; for (i = 1; i <= 10 ; i = i + 1) { sum = sum + i; } System.out.println("1 부터 10 까지의 합은 " + sum + " 입니다 "); }}
for문을 이용한 반복
![Page 58: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/58.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
58
프로그램 설명- 05 : for 구문에 반복의 초기식과 조건식 , 증감식을 지정하였다 .- 06~08 : 반복 부분을 지정한다 . 반복 부분이 한 문장이라도 “ {}” 로 묶어 주는 것이
가독성에 좋다
![Page 59: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/59.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
59
실습예제- while 문과 do-while 문에서 작성하였던 1 부터 10 까지의 합을 구하는 프로그램을 for
문을 사용하여 작성하였다 .
ForTest2.java0102030405060708091011
public class ForTest2 { public static void main(String args[]) { int i, sum=0; for (i = 1; i <= 100 ; i = i + 2) { sum = sum + i; } System.out.println("1 부터 100 사이의 홀수의 합은 " + sum + " 입니다 "); }}
![Page 60: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/60.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
60
프로그램 설명- 05 : 홀수만 더하기 위해 i 값을 2 씩 증가시켰다 .
![Page 61: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/61.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
61
실습예제- 사용자로부터 두 개의 숫자를 입력받아 최소공배수와 최대공약수를 구하는 프로그램이다 .
이 프로그램에서는 if 문 내에 break 문을 사용하였는데 , 이 문장은 자신을 둘러싸고 있는 반복문을 벗어나 다음 문장을 수행하는 역할을 한다 . break 문에 대해서는 3.1 절에서 설명한다 .
ForTest3.java0102030405060708091011
public class ForTest3 { public static void main(String args[]) { int n = Integer.parseInt(args[0]); int m = Integer.parseInt(args[1]); int i; for( i=1 ; i<=m*n ; i++) { if((i%n == 0) && (i%m == 0)) break; }
최소공배수를 구하기 위한 for문
![Page 62: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/62.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
62
실습예제
ForTest3.java121314151617181920212223
System.out.print(" 최소 공배수는 " + i + " 입니다 . "); for( i=n ; i>=1 ; i-- ) { if((m%i == 0) && (n%i == 0)) break; } if(i==1) System.out.print(" 최대 공약수가 없습니다 ."); else System.out.print(" 최대 공약수는 " + i + " 입니다 . "); }}
최대공약수를 구하기 위한 for문
![Page 63: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/63.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
63
프로그램 설명- 07 : 최소공배수를 구하기 위한 for 반복문이다 . - 09 : i 값을 두 개의 값으로 나누어 나머지가 0 이 되는 값을 구한다 .- 10 : 두 값의 나머지가 모두 0 이면 반복문을 벗어나 다음 문장을 수행한다 . - 13 : 최대공약수를 구하기 위한 for 반복문이다 . - 15 : 두 개의 값을 i(i=n 부터 시작 ) 값으로 나누어 나머지가 0 이 되는 값을 구한다 .- 16 : 두 값의 나머지가 모두 0 이면 반복문을 벗어나 다음 문장을 수행한다 .
![Page 64: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/64.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-3 for 문2 반복문
64
![Page 65: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/65.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
65
3 개의 반복문의 구조
126 page
![Page 66: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/66.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
66
3 개의 반복문의 구조
For 문for ( j=1 ; j < 0 ; j++) System.out.println(" 한번도 수행안됨 )
수행결과 while 문 j=1;while( j < 0 ) System.out.println(" 한번도 수행안됨 )
수행결과do-while 문j=1;do { System.out.println(" 적어도 한번은 수행됨 );}while ( j < 0 ) 수행결과적어도 한번은 수행됨
조건을 먼저 검사함으로써 한 번도수행이 되지 않을 수 있다 .
![Page 67: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/67.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
67
반복문의 내포된 형태
128 page
![Page 68: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/68.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
68
실습예제- 구구단을 1 단부터 9 단까지 출력하는 프로그램을 3 가지 형태의 반복문으로 작성하였다 .
구구단을 출력하기 위해 내포된 반복문을 사용하였다 .NestedLoopForTest.java01020304050607080910111213
public class NestedLoopForTest { public static void main(String args[]) { int i,j; for ( i=2; i<=9 ; i=i+1 ) { System.out.println("*** " + i + " 단 ***"); for( j=1; j<=9; j=j+1 ) System.out.println(i+" * " + j + " = " + i*j); System.out.println(); } }}
바깥쪽 for문내포된 for문
![Page 69: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/69.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
69
프로그램 설명- 05 : 단을 출력하기 위한 바깥쪽 for 문을 작성한다 . - 07 : 단의 제목을 출력한다 . - 08~09 : 각 단의 내용을 출력하기 위한 내포된 for 문
- 10 : 한 단을 출력하고 한 줄을 띤다 .- 05-10 : 두 개의 for 문이 내포된 형태이다 . 구구단을 출력하기 위해서 바깥쪽 for 문은 2
단부터 9 단까지를 반복하고 , 내포된 for 문에서는 각 단별로 1 부터 9 까지의 곱셈 결과를 출력하고 있다 . 한 단이 끝나면 한 줄을 띠기 위해 빈 출력문 (System.out.println()) 을 사용하였다 .
![Page 70: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/70.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
70
실습예제NestedLoopWhile.java010203040506070809101112131415161718
public class NestedLoopWhileTest{ public static void main(String args[]) { int i=2; while ( i<=9 ) { System.out.println("*** " + i + " 단 ***"); int j=1; while ( j<=9 ) { System.out.println(i+" * " + j + " = " + i*j); j++; } System.out.println(); i++; } }}
바깥쪽 while문내포된 while문
![Page 71: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/71.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
71
프로그램 설명- 05 : 단을 출력하기 위한 바깥쪽 while 문을 작성한다 . - 08 : 안쪽 while 문의 조건을 제어하는 변숫값을 1 로 초기화한다 . 바깥쪽 반복문이 실행될
때마다 이 변숫값은 1 로 초기화된다 . 내포된 while 문이 반복되어 수행될 경우 조건절의 제어변수는 반드시 초기화되어야 한다 . 초기화되지 않으면 , 내포된 while 문의 조건이 거짓이 되어 수행되지 않는다 .
- 09~13 : 각 단의 내용을 출력하기 위한 내포된 while 문 . 조건을 제어하는 변숫값 j 를 1씩 증가시키고 있다 . 내포된 while 문은 구구단의 각 단을 출력하게 된다 .
- 14 : 한 단을 출력하고 한 줄을 띤다 .- 15 : 바깥쪽 while 문의 제어변숫값을 1 증가시킨다 .- 05~15 : while 문은 조건절만 기술한다 . 조건절을 거짓으로 만들기 위한 문장이 while 문
내에 없으면 , 무한 반복된다 . 15 번 문장에서 j 값을 증가시킴으로서 9 단까지 출력한 다음 바깥쪽 while 문의 조건절이 거짓이 되어 프로그램이 종료된다 .
![Page 72: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/72.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
72
실습예제NestedLoopDoWhileTest.java01020304050607080910111213141516
public class NestedLoopDoWhileTest{ public static void main(String args[]) { int i=2; do{ System.out.println("*** " + i + " 단 ***"); int j=1; do{ System.out.println(i+" * " + j + " = " + i*j); j++; }while ( j<=9 ); System.out.println(); i++; }while ( i<=9 ); } }
바깥쪽 do-while문내포된 do-while문
![Page 73: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/73.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
73
프로그램 설명- 07 : 내포된 do-while 문의 조건절 제어 변숫값을 초기화한다 . - 13 : do-while 의 조건절을 거짓으로 만들기 위해 i 값을 1 증가한다 . - 08~11 : 각 단의 내용을 출력하기 위한 내포된 do-while 문이다 . 조건을 제어하는 변숫값
j 를 1 씩 증가시키고 있다 .- 05~14 : 단을 출력하기 위한 바깥쪽 do-while 문을 작성한다 . 조건을 나중에 검사한다는
것을 제외하고는 while 문으로 작성된 프로그램과 동일한 구조를 가진다 .
![Page 74: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/74.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
74
![Page 75: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/75.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
75
![Page 76: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/76.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
2-4 반복문의 비교와 중첩2 반복문
76
![Page 77: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/77.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
77
프로그램에서 제어를 이동시키기 위해 break, continue, return 문을 제공
break 문- 두 가지 형태로 사용이 가능
- switch 문이나 반복문을 벗어나는데 사용
- switch 문이나 반복문 내에서 break 문이 수행되면 실행을 중단하고 switch 문이나 반복문을 벗어나 다음의 첫 문장으로 제어가 이동
break; 형식
![Page 78: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/78.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
78
break 문
switch ( a+b ){ case 1: System.out.println("......."); break; case 2 : System.out.println("......."); break; case 3 : System.out.println("......."); break; ...... default : .......... break;}
switch문 밖으로 이동
![Page 79: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/79.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
79
break 문
while (true){ if ( 100 < j ) break; sum = sum+j; j++;}
while문 밖으로 이동
![Page 80: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/80.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
80
실습예제- 1 부터 100 사이를 반복하는 반복문 내에 특정 조건을 가지는 선택문을 삽입하여 조건이
만족하면 반복문을 벗어나는 프로그램을 작성하였다 .
ForBreakTest.java0102030405060708091011
public class ForBreakTest { public static void main(String args[]) { for(int i=0; i<100; i++) { if(i == 5) break; System.out.println(i + " 자바의 세계로 오세요 ! " ); } System.out.println("break 문에 의하여 for 문이 중단되었습니다 ."); }}
for 반복문반복에서 i의 값이 5면 break문 수행
![Page 81: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/81.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
81
프로그램 설명- 04 : 100 번을 반복하기 위한 for 반복문이다 . - 06 : 반복에서 i 의 값을 검사하여 그 값이 5 면 break 문을 수행한다 . break 문은 주로
반복문 내에서 특정 조건에 적합할 때 반복을 벗어나기 위해 사용한다 .- 09 : break 문 다음에 수행되는 문장이다 .
![Page 82: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/82.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
82
실습예제- while 문의 조건절을 true 로 설정한 다음 , 반복문 내에서 특정 조건을 검사하여 반복을
벗어나는 프로그램이다 .
WhileBreakTest.java01020304050607080910111213
public class WhileBreakTest { public static void main(String args[]) { int j=1, sum=0; while(true) { if(100 < j) break; sum = sum + j; j++; } System.out.println("1 부터 " + (j-1) + " 까지의 합 : " + sum); }}
무한 반복 while문j의 값이 100을 넘으면 break문 수행
![Page 83: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/83.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
83
프로그램 설명- 05 : 100 번을 반복하기 위한 for 반복문이다 . - 07 : 반복에서 i 의 값을 검사하여 그 값이 5 면 break 문을 수행한다 . break 문은 주로
반복문 내에서 특정 조건에 적합할 때 반복을 벗어나기 위해 사용한다 .- 11 : break 문 다음에 수행되는 문장이다 .
![Page 84: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/84.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
84
실습예제- 반복문이 내포된 상태에서 break 문이 사용되면 , break 문을 포함하고 있는 반복문만
벗어난다 . 다음 프로그램은 내포된 for 문에서의 break 를 사용하는 예이다 .NestedForBreakTest.java010203040506070809101112131415
public class NestedForBreakTest { public static void main(String args[]) { int i, j; for(i=1 ; i<10 ; i++) { for(j=1 ; j<i ; j++) { if (j > 6) break; System.out.print(" * "); } System.out.println(); } }}
바깥쪽 반복문 선언 (9번 반복 )
내포된 반복문 선언j 값이 6 이상이면 내포된 반복문을 벗어남
![Page 85: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/85.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
85
프로그램 설명- 05 : 바깥쪽 반복문을 선언한다 . 반복문은 9 번 반복된다 . - 07 : 내포된 반복문을 선언한다 . - 09 : 변수 j 값이 6 이상이면 내포된 반복문을 벗어나 12 번 문장을 수행한다 . 내포된
반복문 내에서 break 문이 사용되면 해당 반복문만 벗어난다 .- 10 : “*” 을 출력한다 . 출력 후 줄을 바꾸지 않는다 .- 12 : 바깥쪽 반복문의 반복 부분으로 줄을 바꾼다 .
![Page 86: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/86.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
86
break label 문 - break 문과 label 을 이용하여 제어를 이동시킬 수 있는 방법을 제공
break label;형식
First : { .......... Second : { ............ Third : { if ( 5 < a ) break Second; System.out.println("Third 블록입니다 "); } System.out.println("Second 블록입니다 "); } System.out.println("First 블록입니다 "); }
Second문 밖으로 이동
![Page 87: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/87.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
87
break label 문
First : { .......... Second : { if ( a > 5 ) break Third; System.out.println("Third 블록입니다 "); ............ System.out.println("Second 블록입니다 "); } System.out.println("First 블록입니다 "); }
Third : { ............... }
오류 발생reak는 내포된 블록 구조에서만 사용이 가능하다 .
![Page 88: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/88.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
88
break label 문
Loop : for( j=2 ; j <= 9 ; j++) { .................. InnerLoop : for ( k=1 ; k <= 9 ; k++) { ................ if ( k > 5 ) break InnerLoop; ............... } System.out.println("Loop 블록입니다 "); }
반복문 앞에 label을 사용하여 블록을지정할 수 있다 .
![Page 89: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/89.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
89
실습예제- 내포된 블록에서 일반 블록을 지정하여 블록을 벗어나는 예를 나타낸 프로그램이다 .
BreakLabelTest.java 010203040506070809101112131415161718
public class BreakLabelTest { public static void main(String args[]) { boolean t = true; First:{ Second:{ Third:{ System.out.println("Third 블록 'break' 문장 전 "); if(t) break Second; System.out.println("Third 블록 'break' 문장 후 "); } System.out.println("Second 블록 문장 "); } System.out.println("First 블록 문장 "); } System.out.println("main 블록 문장 "); } }
break Second문 수행Third 블록 선언 Second 블록 선언 First 블록 선언
![Page 90: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/90.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
90
프로그램 설명- 09 : break Second 문을 수행하여 Second 블록 밖으로 제어가 이동된다 . - 05~15 : First 블록을 선언한다 . break label 문장은 반드시 내포된 블록에서만 가능하다 .
label 로 지정된 블록 밖으로 제어가 이동된다 .- 06~13 : First 블록 안에 내포된 블록으로 Second 블록을 선언한다 . - 07~11 : Second 블록 안에 내포된 블록으로 Third 블록을 선언한다 .
![Page 91: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/91.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
91
실습예제- 두 개의 무한 반복문에서 break 문과 break label 문의 사용 예를 보이고 있다 .
BreakLabelTest2.java 01020304050607080910111213141516171819
public class BreakLabelTest2 { public static void main(String args[]) { int i=2, j; Loop : while(true) { j=1; Innerloop : while(true) { if ( j > 9 ) break; if ( i > 9 ) break Loop; System.out.println(i+” * " + j + " = " + i*j); j++; } System.out.println(); i++; } }}
Loop 블록 , 무한 반복Innerloop 블록으로 지정 ,무한 반복
![Page 92: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/92.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
92
프로그램 설명- 10 : j 값이 9 보다 크면 현재의 반복문을 벗어난다 .- 11 : i 값이 9 보다 크면 Loop 블록을 벗어나 프로그램이 종료된다 . - 05~17 : Loop 블록으로 지정된 무한 반복문을 선언한다 . - 08~14 : Innerloop 블록으로 지정된 무한 반복문으로서 Loop 블록에 내포되어 있다 .
내포된 블록 (Innerloop) 에서 조건에 따라 블록을 벗어난다 . 변수 j 의 값이 9 보다 크면 자신의 블록을 벗어나고 , 변수 i 의 값이 9 보다 크면 바깥의 Loop 블록을 벗어난다 .
![Page 93: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/93.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-1 break 문3 제어의 이동
93
![Page 94: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/94.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-2 continue 문3 제어의 이동
94
반복문의 특정 지점에서 제어를 반복문의 처음으로 보내기 위해 continue문을 사용
반복문 내에서 continue 문을 만나면 수행을 중지하고 제어를 반복문의 처음으로 이동
![Page 95: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/95.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-2 continue 문3 제어의 이동
95
실습예제- 다음 프로그램은 반복문 내에서 continue 문을 사용하는 예이다 . 1-100 사이의 수 중에서
짝수만을 더하는 프로그램이다 . 현재의 수가 홀수일 경우에는 반복문의 처음으로 제어를 이동ContinueTest.java
010203040506070809101112
public class ContinueTest { public static void main(String args[]) { int sum=0, i; for( i=1; i<=100; i++ ) { if (i%2 == 1) continue; sum = sum + i; } System.out.println("1 부터 100 사이에 있는 짝수의 합은 : " + sum ); } }
짝수인 경우만 더한다 .
변수 i 값을 검사하여 홀수일 경우에는 제어를 반복문의 처음 (증감부분 )으로 이동한다 .
![Page 96: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/96.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-2 continue 문3 제어의 이동
96
실습예제- 내포된 for 문에서 label 을 이용하여 바깥의 for 문으로 제어를 이동하는 프로그램
ContinueTest.java010203040506070809101112131415
public class ContinueLabelTest { public static void main(String args[]) { int i,j; Outer : for ( i=2; i<=9 ; i=i+1 ) { System.out.println("*** " + i + " 단 ***"); for(j=1; j<=9; j=j+1) { if (j == 3) continue Outer; System.out.println(i+" * " + j + " = " + i*j); } } }}
반복문에 Outer 블록 선언
내포된 반복문 선언
![Page 97: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/97.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-2 continue 문3 제어의 이동
97
프로그램 설명- 05 : 반복문에 Outer 블록을 선언한다 . - 08 : 내포된 반복문을 선언한다 . - 10 : 내포된 반복문에서 바깥쪽 반복문의 처음으로 제어를 이동시킨다 . 이를 위해 바깥쪽
반복문을 Outer 블록으로 지정하였고 , continue 문에서 label 로 Outer 를 지정하였다 .
![Page 98: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/98.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-3 return 문3 제어의 이동
98
Return 문- 현재 실행 중인 프로그램을 중단하고 , 현재 프로그램을 호출한 곳으로 제어를 반환한다 .
![Page 99: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/99.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-3 return 문3 제어의 이동
99
실습예제- 무한 반복문 내에서 특정 조건에 적합하면 실행을 중단하고 프로그램의 제어를 호출한 곳으로 반환하는 프로그램이다 .
ReturnTest.java01020304050607080910111213141516
public class ReturnTest { public static void main(String args[]) { int j = 1; int k = Integer.parseInt(args[0]); while(true) { if (j % k == 0) { System.out.println(" 매개변수로 입력된 숫자 : " + j); return; } j++; } }}
![Page 100: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/100.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
3-3 return 문3 제어의 이동
100
프로그램 설명- 08 : 매개변수로 입력된 값을 j 값으로 (1 씩 증가 ) 나누어 떨어지는 조건을 지정한다 . - 11 : 실행을 중지하고 제어를 호출한 곳으로 반환한다 . 이 프로그램에서는 종료를 의미한
다 .
![Page 101: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/101.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4 배열
101
배열- 같은 형의 데이터들을 다수 개 저장할 수 있는 기억장소를 의미
- 하나의 이름으로 다수 개의 데이터를 사용할 수 있음
- 학생 10 명 성적의 평균을 구하는 프로그램을 작성시 많은 변수를 사용하여 프로그램을 복잡하게 하여 오류를 발생시킬 수 있다 .
int cskim, tbpark, seoh, phkim, cmkim, sdkim, cslee, hjkim, kylee, dhlee;int avg;cskim=99;
...... 생략 ......
dhlee=85;avg = cskim + tbpark + .... 생략 .... + dhlee / 10;System.out.println(" 과목 평균 : " + avg);
![Page 102: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/102.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4 배열
102
변수를 사용하는 경우와 배열을 사용하는 경우
145 page
![Page 103: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/103.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-1 배열의 선언과 생성4 배열
103
배열의 선언- 배열 요소의 형 (type), 배열을 의미하는 대괄호 “ []”, 배열의 이름을 적절히 조합하여 사용
배열의 생성- new 연산자를 사용하여 배열의 형과 크기를 지정
형식 : 배열의 선언과 생성
type name[];type[] name;type[][] name;type name[][];type[] name[];
[ 배열의 선언 ]
name = new type[size];name = new type[size][size];
[ 배열의 생성 ]
배열 생성을 위해서new 연산자 사용new 연산자는객체 생성연산자이다 .(5장설명 )
![Page 104: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/104.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-1 배열의 선언과 생성4 배열
104
형식 : 배열의 선언과 생성
type[] name = new type[size];type name[] = new type[size];type[][] name = new type[size][size];type name[][] = new type[size][size];type[] name[] = new type[size][size];
[ 배열의 선언과 생성 ]
int[] id;id = new int[3];또는int[] id = new int[3];
String[] student_name ;student_name = new String[3];또는String[] student_name = new String[3];
선언과 생성을 동시에 한 문장으로 할 수 있다 .
3개의 int 요소 (기본 자료형 )를 가진 배열 생성
3개의 문자열 요소 (참조 자료형 )를 가진배열 생성
![Page 105: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/105.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-1 배열의 선언과 생성4 배열
105
형식 : 배열의 선언과 생성
int[][] id_and_score = new int[5][2];
String add_and_name[][] = new String[10][10];
int[][] score = new int[2][];score[0] = new int[2];score[1] = new int[3];score[2] = new int[4];
2차원 배열이지만 각 행의 요소의 개수가 다르게 생성할 수 있다 .
5행과 2열을 가진 2차원 배열 생성
문자열 10행 , 10열의 배열 생성
![Page 106: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/106.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-1 배열의 선언과 생성4 배열
106
각 행의 요소의 개수가 다른 배열의 형태
147 page
![Page 107: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/107.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
107
배열의 초기화 과정- 일반적으로 배열을 사용하기 위해 거치는 과정
- 자바에서는 배열의 생성과 초기화 과정을 하나의 문장으로 해결할 수 있는 방법을 제공
배열의 생성과 초기화
int[] id = new int[5];int[0] = 201195041;int[1] = 201195042;int[2] = 201195043;int[3] = 201195044;int[4] = 201195045;
또는int id[] = { 201195041, 201195042, 201195043, 201195044, 201195045 };
생성과 초기화 과정을한 문장으로 작성
![Page 108: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/108.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
108
배열의 생성과 초기화
String[][] name_addr = new String[3][2]name_addr[0][0] = "kim";name_addr[0][1] = "seoul";name_addr[1][0] = "park";name_addr[1][1] = "busan";name_addr[2][0] = "lee";name_addr[2][1] = "inchon";
또는String[][] name_addr = {{"kim","seoul"},{"park","busan"},{"lee","inchon"}};
생성과 초기화 과정을한 문장으로 작성
int[][] id_score = {{ 70, 80, 90 },{ 98, 69, 49, 97 }, { 36, 70, 78, 91, 73 }};
생성과 초기화 과정을한 문장으로 작성
![Page 109: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/109.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
109
Length- 배열의 길이를 나타내는 속성
int[] number = new int[20];System.out.println("number 배열의 길이 : " + number.length);
배열 요소의 개수를 반환
![Page 110: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/110.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
110
실습예제ArraysOneDTest1.java01020304050607080910111213141516171819
public class ArraysOneDTest1 { public static void main(String args[]) { int number[] = new int[10]; System.out.println("number 배열의 길이 : " + number.length);
int i,j,sum=0; double avg; for (i=0; i < number.length ; i=i+1) number[i] = i+1; for (j=0; j < number.length ; j=j+1) sum = sum + number[j]; System.out.println("1 부터 10 까지의 합은 " + sum + " 입니다 "); avg = (double)sum/number.length; System.out.println("1 부터 10 까지의 합의 평균은 " + avg + " 입니다 "); }}
10개의 요소를 가진 int형 배열 선언배열의 길이를 출력
배열의 각 요소에 1부터 10까지 저장배열의 각 요소의 합계를 구함
![Page 111: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/111.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
111
프로그램 설명- 04 : 10 개의 요소를 가진 int 형의 배열을 선언하고 생성하였다 .- 05 : 배열의 속성변수인 length 를 이용하여 배열의 길이를 출력하였다 .- 09~10 : 반복문을 이용하여 배열에 정수 값 1 부터 10 을 저장하는 초기화를 수행하였다 .- 14 : 정확한 배열의 평균 값을 구하기 위해 double 값으로 나눗셈을 수행하였다 . sum
변수의 값을 double 형으로 변환하여 나눗셈을 수행하였다 . double 형으로 형변환하지 않으면 정수 나눗셈이 되어 결과가 5.0 이 된다 .
![Page 112: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/112.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
112
실습예제ArraysOneDTest2.java0102030405060708091011121314
public class ArraysOneDTest2 { public static void main(String args[]) { int score[] = {88,97,53,62,92,68,82}; int max=score[0]; for (int i=1; i < score.length ; i=i+1) { if ( score[i] > max ) max = score[i]; } System.out.println (" 배열 요소의 최댓값은 " + max + " 입니다 "); }}
배열의 선언과 초기화 수행max 변수에 첫 번째 요소 값 저장
배열 요소 중 가장 큰 값을 max에 저장
![Page 113: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/113.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
113
프로그램 설명- 04 : 7 개의 요소를 가진 int 형의 배열을 선언하고 초기화 과정을 하나의 문장으로
기술하였다 .- 05 : 최댓값을 저장하는 max 변수에 첫 번째 요소 (score[0]) 값을 저장하였다 .- 06 : 배열의 length 속성을 이용하여 조건문을 작성하였다 . 배열의 첫 번째 요소가 이미
max 변수에 저장되었으므로 , 배열의 두 번째 요소부터 비교하기 위해 i 변숫값을 1로설정하였다 .
- 08~09 : max 변수의 값과 배열의 각 요소를 비교하여 큰 값을 max 에 저장하였다 .
![Page 114: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/114.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
114
실습예제- 다음 프로그램은 String 형의 배열을 사용하는 프로그램이다 .
ArraysOneDTest3.java010203040506070809
public class ArraysOneDTest3 { public static void main(String args[]) { String weekly_days[] = {" 월요일 ", " 화요일 ", " 수요일 ", " 목요일 ", " 금요일 ", " 토요일 ", " 일요일 "}; System.out.println(" 제일 좋아하는 요일은 " + weekly_days[5] + " 입니다 ."); }}
배열을 선언하고 직접 초기화
배열의 6번째 요소를 출력
![Page 115: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/115.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
115
프로그램 설명- 04 : 문자열의 배열을 선언하고 직접 초기화를 수행한다 . - 06 : 문자열 배열의 6 번째 요소를 출력한다 .
![Page 116: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/116.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
116
실습예제MultiArrayTest1.java01020304050607080910111213141516171819
public class MultiArrayTest1 { public static void main(String args[]) { int two_array[][]= new int[4][5]; int i, j, k = 1; for(i=0; i<4; i++) for(j=0; j<5; j++) { two_array[i][j] = k; k++; } for(i=0; i<4; i++) { for(j=0; j<5; j++) System.out.print(two_array[i][j] + " "); System.out.println(); } }}
10개의 요소를 가진 int형 배열 선언
배열의 각 요소에 1~20까지 저장
하나의 행을 한 라인에 출력
![Page 117: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/117.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
117
프로그램 설명- 04 : 4*5 개의 행과 열을 (20 개 요소 ) 가진 2 차원 배열을 선언한다 . - 06~10 : 내포된 두 개의 for 문을 이용하여 배열의 각 요소에 정수 값을 저장한다 . 1 부터
20 까지가 저장된다 . - 14~15 : 두 개의 반복문을 이용하여 배열 요소 값을 출력한다 . 한 행에 5 개의 값을 옆으로
출력한다 . - 16 : 라인을 바꾼다
![Page 118: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/118.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
118
실습예제- 다음 프로그램은 2 차원 배열에서 각 행의 요소 수를 다르게 생성하여 사용하는 예이다 .
자바에서 2 차원 배열은 1 차원 배열 여러 개를 배열로 선언한 것과 같다 . 2 차원 배열에서 length 속성은 배열의 행의 개수를 반환한다 . 각 행의 열 ( 요소 ) 의 개수를 알기 위해서는 각 행의 이름에 length 속성을 사용해야 한다 .
MultiArrayTest2.java 01020304050607080910111213
public class MultiArrayTest2 { public static void main(String args[]) { int twoD[][] = new int[4][]; twoD[0] = new int[1]; twoD[1] = new int[2]; twoD[2] = new int[3]; twoD[3] = new int[4]; System.out.println("2 차원 배열에서 행의 길이는 : " +twoD.length); System.out.println(" 첫 번째 행의 요소 수는 : " +twoD[0].length); System.out.println(" 두 번째 행의 요소 수는 : "
2차원 배열을 선언 . 행의 크기만 지정
각 행의 요소 수 (1차원 배열 ) 선언
행의 크기 출력0번째 행의 길이 출력
![Page 119: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/119.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
119
실습예제MultiArrayTest2.java 1415161718192021222324252627282930313233
+twoD[1].length); System.out.println(" 세 번째 행의 요소 수는 : " +twoD[2].length); System.out.println(" 네 번째 행의 요소 수는 : " +twoD[3].length); int i, j, k = 0; for(i=0 ; i < twoD.length ; i++) for(j=0 ; j< twoD[i].length ; j++) { twoD[i][j] = k; k++; } for(i=0 ; i < twoD.length ; i++) { for(j=0 ; j< twoD[i].length; j++) System.out.print(twoD[i][j] + " "); System.out.println(); } }}
length 속성을 사용하여조건절 지정
![Page 120: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/120.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
120
프로그램 설명- 04 : 2 차원 배열은 1 차원 배열의 배열로 정의할 수 있다 . 각각 서로 다른 길이를 가진 1
차원 배열 여러 개를 사용하여 2 차원 배열을 구성할 수 있다 . - 05~08 : 2 차원 배열의 각 행에 1 차원 배열을 선언한다 . 길이를 서로 다르게 지정할 수
있다 . - 09 : 2 차원 배열에서 배열 이름을 이용한 length 속성은 행의 개수를 반환한다 . - 10 : 2 차원 배열에서 각 행의 길이를 출력하려면 각 행의 length 속성을 사용한다 .- 20~21 : length 속성을 사용하여 반복문의 조건절을 지정하였다 .
![Page 121: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/121.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
121
실습예제- 다음 프로그램은 3 차원 배열을 사용하는 예를 보이고 있다 . 자바에서 3 차원 배열은 2
차원 배열을 여러 개 사용하여 구성한다고 생각하면 된다 . 즉 int[3][4][5] 로 구성된 3차원 배열은 2 차원 배열 int[4][5] 가 3 개 있다고 생각하면 되고 , 2 차원 배열 int[4][5]는 1 차원 배열 int[5] 가 4 개 있다고 생각하면 된다 .
- 다음 프로그램은 3 차원 배열을 생성하고 배열의 요소를 초기화한 다음 출력하는 프로그램이다 .
MultiArrayTest3.java01020304050607080910
public class MultiArrayTest3 { public static void main(String args[]) { int threeD[][][] = new int[3][4][5]; int i, j, k, count=11; for( i=0 ; i < threeD.length ; i++) for( j=0; j < threeD[i].length ; j++) for( k=0; k < threeD[i][j].length ; k++) { threeD[i][j][k] = count;
2차원 배열을 선언 . 행의 크기만 지정
각 행의 요소 수 (1차원 배열 ) 선언
![Page 122: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/122.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
122
실습예제
MultiArrayTest3.java111213141516171819202122232425
count++; } for(i=0; i<threeD.length; i++) { System.out.println((i+1) + " 번째 2 차원 배열 "); for(j=0; j<threeD[i].length; j++) { for(k=0; k<threeD[i][j].length; k++) System.out.print(threeD[i][j][k] + " "); System.out.println(); } System.out.println(); } }}
![Page 123: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/123.jpg)
4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역
4-2 배열의 초기화 및 사용4 배열
123
프로그램 설명- 04 : 60 개의 요소를 가진 3*4*5 3 차원 배열을 선언하였다 . - 06~08 : 3 개의 내포된 반복문을 사용하여 배열을 초기화하였다 . 각 배열의 length 속성을 사용하여 조건절을 구성하였다 .
![Page 124: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/124.jpg)
자바 프로그램의 선택 논리
학습정리
124
![Page 125: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/125.jpg)
자바 프로그램의 선택 논리
학습정리
125
![Page 126: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/126.jpg)
자바 프로그램의 선택 논리
학습정리
126
![Page 127: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/127.jpg)
자바 프로그램의 선택 논리
학습정리
127
![Page 128: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/128.jpg)
자바 프로그램의 반복 논리
학습정리
128
![Page 129: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/129.jpg)
제어의 이동 ▒① 반복문이나 switch 문 내에서 break 문을 사용하면 제어가 반복문과 switch 문 밖으로 이동된다 .
② continue 문은 제어를 반복문의 처음으로 이동시킨다 .③ return 문은 실행을 중단하고 제어를 호출한 곳으로 이동시킨다 .
배열① 자바의 배열을 사용하기 위해서는 반드시 선언과정과 생성과정이 필요하다 .② 자바에서 배열의 선언과 생성 , 초기화를 하나의 문장으로 사용할 수 있다 .
int[] number = { 127, 33, 754, 282 };
③ 자바에서 2 차원 배열은 1 차원 배열 여러 개를 묶어 놓은 형태이다 . 3 차원 배열은 2차원 배열을 여러 개 사용하여 구성한다
학습정리
129
![Page 130: 4 장 . 자바의 기본 구조 II : 선택 , 반복 , 배역](https://reader030.vdocuments.site/reader030/viewer/2022020920/5681330b550346895d99c9fe/html5/thumbnails/130.jpg)
4장. 자바의 기본 구조 II :선택, 반복, 배역
130
수고하셨습니다 .질문 있습니까 ?