1 / 26

5.1 선택문 5.2 반복문 5.3 제어의 이동

5. 제어문. 5.1 선택문 5.2 반복문 5.3 제어의 이동. 5.1 선택문. 자바는 선택 논리의 제공을 위해 if, switch 문 제공 if-else 문 if ( 조건절) 문장1; [ else 문장2;] ] if-else 문 예 int a,b; boolean flag; flag = false; // ........ 생략 if (a < b) flag = true; System.out.println("Flag is" + flag);. 5.1 선택문. if-else 문 예 int a,b;

mei
Download Presentation

5.1 선택문 5.2 반복문 5.3 제어의 이동

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5. 제어문 5.1 선택문 5.2 반복문 5.3 제어의 이동

  2. 5.1선택문 자바는 선택 논리의 제공을 위해 if, switch문 제공 if-else문 if (조건절) 문장1; [else 문장2;]] if-else문 예 int a,b; boolean flag; flag = false; // ........생략 if (a < b) flag = true; System.out.println("Flag is" + flag);

  3. 5.1선택문 if-else문 예 int a,b; boolean flag; // ........생략 if (a < b) flag = true; else flag = false; System.out.println("Flag is" + flag);

  4. 5.1선택문 if-else문 예 boolean dataAvailable; // ... if (dataAvailable) ProcessData(); else waitForMoreData();

  5. 5.1선택문 if-else문 예 int bytesAvailable; // ... if (bytesAvailable > 0) { ProcessData(); bytesAvailable -= n; } else { waitForMoreData(); bytesAvailable = n; }

  6. 5.1선택문 내포된 if문의 예 if(i == 10) { if(j < 20) a = b; if(k > 100) c = d; else a = c; // 같은 블록 내에서 가장 가까운 if(k>100)과 연관된 else문 } else a = d; // 같은 블록 내에서 가장 가까운 if(i == 10)과 연관된 else문

  7. 5.1선택문 If-else-if 문 if (조건절) 문장1; else if(조건절) 문장2; else if(조건절) 문장3; ... ... else 문장n;

  8. 5.1선택문 switch 문 switch (수식) { case 값1: 처리 문장들; break; case 값2: 처리 문장들; break; ........... case 값n: 처리 문장들; break; default: 묵시적으로 처리해야 하는 문장들; }

  9. 5.1선택문 • 내포된 switch문 예 switch(count) { case 1: switch(flag) { //내포된 switch문 case 0: System.out.println("flag is zero"); break; case 1: // switch(count)의 case 1과 아무런 상관이 없다. System.out.println("flag is one"); break; } System.out.println("내포된 switch문 실행"); break; case 2: .....................

  10. 5.2반복문 자바는 반복 논리를 제공하기 위해 while, do-while, for문을 제공 반복될 문장이 여러 문장일 경우 “{}”를 사용하여 블록으로 지정

  11. 5.2반복문 (1) 반복문 while 조건절로 지정된 조건이 참일 동안 While 블록을 실행 while(조건절) { 반복 문장들 } 예 int a=10, b=20; while(a>b) System.out.println(“이 문장은 영원히 나타나지 않는다”);

  12. 5.2반복문 (2) 반복문 do-while Do-while문은 조건을 나중에 평가한다. while 블록이 적어도 한번은 수행 do { 반복 문장들 } while(조건절);

  13. 5.2반복문 (3) 반복문 for For문은 주어진 초기값을 시작으로 조건을 만족하는 동안 블록을 수행 초기값 설정을 수행하고, 조건을 판단하여 참이면 블록을 수행하고, 증감 부분을 수행(과정 반복) for(초기값 ; 조건 ; 증감) { 반복 문장들 }

  14. 5.2반복문 예 • class For { • public static void main(String args[]) { • int n; • System.out.print("1에서 10까지의 정수 : " ); • for(n=1; n < 11; n++) • System.out.print(n + " " ); • } • }

  15. 5.2반복문 • class For { • public static void main(String args[]) { • System.out.print("1에서 10까지의 정수 : " ); • for(int n=1; n < 11; n++) • // for 문 내에서 변수를 선언하여 사용. • // 변수 n은 main() 메소드를 유효 범위로 가진다. • System.out.print(n + " " ); • } • } • class ForErr { • public static void main(String args[]) { • int n; // 변수 n 선언 • System.out.print("1에서 10까지의 정수 : " ); • for(int n=1; n < 11; n++) • // for문 내에서 n을 다시 선언. 에러 발생 • System.out.print(n + " " ); • } • } 예 :

  16. 5.2반복문 예 : • class DoubleC { • public static void main(String args[]) { • int a, b; • for(a=1, b=10; a<b; a++, b--) { • System.out.print("a = " + a); • System.out.println(" b = " + b); • } • } • }

  17. 5.2반복문 예 : • boolean flag=false; • for (int i=1; !flag; i++) { • ......// i 값을 이용하는 부분 • if (finished_routine()) flag = true; • } • class Forflag { • public static void main(String args[]) { • int i; • boolean flag = false; • i = 1; • for( ; !flag; ) { • System.out.println("i의 값은 " + i + "입니다. "); • if(i == 10) flag = true; • i++; • } • } • }

  18. 5.3 제어의 이동 프로그램 제어를 이동시키기 위해 break, continue, return문을 제공

  19. 5.3 제어의 이동 (1) 제어의 이동 - break break문의 3가지 역할 • switch문에서 switch문을 벗어나는데 사용 • 반복문에서 반복 루프를 벗어나는데 사용 • 기존 프로그램 goto문의 개선된 형태로서 사용

  20. 5.3 제어의 이동 예 • class ForBreak { • public static void main(String args[]) { • for(int i=0; i<100; i++) { • if(i == 10) break; • System.out.println(i + "자바의 세계로 오세요! " ); • } • System.out.println("Break에 의하여 for 문이 중단되었습니다."); • } • } • class WhileBreak { • public static void main(String args[]) { • int i = 0; • while(i < 100) { • if(i == 10) break; • System.out.println(i + "자바의 세계로 오세요! " ); • i++; • } • System.out.println("Break에 의하여 While 문이 중단되었습니다."); • } • }

  21. 5.3 제어의 이동 예 : • class NestedForBreak { • 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(); • } • } • }

  22. 5.3 제어의 이동 제어의 이동 - break label 예 • class BreakTest { • public static void main(String args[]) { • boolean t = true; • first: { • second: { • third: { • System.out.println("third 블록 'break' 문장 전"); • if(t) break second; • // second 블록 밖으로 제어가 이동 • System.out.println("third 블록 'break' 문장 후"); • } • System.out.println("second 블록 문장"); • } • System.out.println("first 블록 문장"); • } • } • }

  23. 5.3 제어의 이동 제어의 이동 - break label 예 • class BreakErr { • public static void main(String args[]) { • one: for(int i=0; i<3; i++) { • System.out.print("Pass " + i + ": "); • } • for(int j=0; j<100; j++) { • if(j == 10) break one; • // 내포된 상태가 아니므로 에러 발생 • System.out.print(j + " "); • } • } • }

  24. 5.3 제어의 이동 (2) 제어의 이동 - continue 반복문의 특정지점에서 제어를 반복문의 처음으로 보낸다. • class ContinueTest { • public static void main(String args[]) { • for(int i=0; i<10; i++) { • if (i%2 == 0) continue; • System.out.println(i + " 자바의 세계로 오세요! " ); • } • } • } • 위 프로그램은 다음과 같은 결과를 출력한다. • 1 자바의 세계로 오세요! • 3 자바의 세계로 오세요! • 5 자바의 세계로 오세요! • 7 자바의 세계로 오세요! • 9 자바의 세계로 오세요!

  25. 5.3 제어의 이동 제어의 이동 - continue label 내포된 for문에서 제어를 label로 지정된 for문의 처음으로 이동시킨다. • class ContinueLabelTest { • public static void main(String args[]) { • outer: for (int i=0; i<10; i++) { • for(int j=0; j<10; j++) { • if(j > i) { • System.out.println(); • continue outer; • // outer로 지정된 for 블록 처음으로 제어 이동 • } • System.out.print(“ “ + (i*j)); • } • } • } • }

  26. 5.3 제어의 이동 (3) 제어의 이동 - return 제어를 메소드를 호출한 곳으로 반환 • class Return { • public static void main(String args[]) { • boolean t = true; • System.out.println("알기 쉽게 해설한 자바!"); • if(t) return; • System.out.println("자바를 배워봅시다."); • } • }

More Related