Power Java 제 6 장선택과반복 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문 지금까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다.
3 가지의제어구조 조건문 문장이실행되는순서에영향을주는문장 조건에따라서여러개의실행경로가운데하나를선택 조건에따라서여러개의같은처리를반복
일상생활에서의조건문의예 만약비가오지않으면테니스를친다. 만약결석이 1/3이상이면 F학점을받는다. 만약시간이없는경우에는택시를탄다. 만약날씨가좋고공휴일이면공원에산책을간다. 점수가 60점이상이면합격이고그렇지않으면불합격이다. 조건문은프로그램의흐름을변경합니다. if-else 문 날씨가좋은가? 거짓 참 테니스를친다. 공부를한다. if( 조건식 ) 문장1; else 문장2; 조건식이참이면실행된다. 조건식이거짓이면실행된다.
복합문 복합문 (compound statement) 중괄호를사용하여문장들을그룹핑하는것, 블록 (block) 이라고도한다. 단일문대신들어갈수있다. if( score >= 60 ) { printf(" 합격입니다.\n"); printf(" 장학금도받을수있습니다.\n"); } 조건식이참이면 2 개의문장이묶여서실행된다. 예제
중첩 if if 문에다시 if 문이포함 if( 조건식1 ) if( 조건식 2 ) 문장 ; 중첩 if if( score > 80 ) if( score > 90 ) System.out.println(" 당신의학점은 A입니다."); If 문안의문장자리에 if 문이들어간경우 if( score > 80 ) if( score > 90 ) System.out.println(" 당신의학점은 A입니다."); else System.out.println(" 당신의학점은 B 입니다."); If 문안의문장자리에 if-else 문이들어간경우
if 와 else 의매칭문제 else 절은가장가까운 if 절과매치된다. if(score > 80) if( score > 90) O System.out.println( 당신의학점은 A입니다 ); X else System.out.println( println( 당신의학점은 B 입니다 ) if( score > 80 ) { if( score > 90 ) } else 만약다른 if절과 else 절을매치시키려면중괄호를사용하여블록으로묶는다. System.out.println( println(" 당신의학점은 A 입니다."); System.out.println(" 당신의학점은 A 나 B 가아닙니다."); 연속적인 if if( 조건식1 ) 문장 1; else if( 조건식2 ) 문장2; else if( 조건식 3 ) 문장3; else 문장 4;
학점부여예제
중간점검문제 1. 변수 n의값이100보다크거나같으면 large", 100보다작으면 small" 을출력하는 if-else 문을작성하라. 2. k의값이각각3, 0, -1인경우에다음의코드에의하여생성되는출력은무엇인가? if( k!= 0 ) System.out.println("A"); else if( k > 3 ) System.out.println("B"); else System.out.println("C"); 3. 컵의사이즈를받아서 100ml 미만은 small, 100ml 이상 200ml 미만은 medium, 200ml 이상은 large 라고출력하는연속적인 if-else 문을작성하시오. switch 문 여러가지경우중에서하나를선택하는데사용
switch 문의예 사용자가 1 을입력하는경우 예제
예제 중간점검문제 1. case 절에서 break 문을생략하면어떻게되는가? 2. 변수 fruit 의값이각각 1, 2, 5 일때, 다음의코드의출력을쓰시오. switch(fruit) { case 1: System.out.println(" 사과 "); break; case 2: System.out.println(" 배 "); case 3: System.out.println(" 바나나 "); break; default:system.out.println(" 과일 "); }
이번장에서학습할내용 반복의개념이해 while 반복문 do-while 반복문 for 반복문 break와 continue 문 반복구조는일련의처리를반복할수있게한다. 반복의개념을먼저이해하고 3가지의반복구조에대하여학습한다. Q) 반복구조는왜필요한가? 반복문 A) 같은처리과정을되풀이하는것이필요하기때문이다. 학생 30명의평균성적을구하려면같은과정을 30번반복하여야한다.
반복문의종류 while 문 주어진조건이만족되는동안문장들을반복실행한다. while( 조건식 ) 문장 ;
예제 예제
예제 두수의최대공약수구하기 유클리드알고리즘 1 두수가운데큰수를 x, 작은수를 y 라한다. 2 y가 0이면공약수는 x와같다. 3 r x % y 4 x y 5 y r 6 단계 2로되돌아간다.
if 문과 while 문의비교 if 문은 while 문으로변경할수있다. while 문도 if 문으로변경할수있다. if( 조건 ) {...... } 조건이만족되면한번만실행된다. while( 조건 ) {...... } 조건이만족되면여러번반복실행된다. do...while 문 반복조건을루프의끝에서검사 do 문장 while( 조건 ) 1 문장들이실행된다. 2 조건식이계산된다. 3 결과가참이면 1 로돌아간다. 4 결과가거짓이면종료된다.
예제 예제
for 루프 정해진횟수만큼반복하는구조 for 문의구조 for ( 초기화 ; 조건식 ; 증감식 ) 문장 ; 1 초기화를실행한다. 2 반복조건을나타내는조건식을계산한다. 3 수식의값이거짓이면 for 문의실행이종료된다. 4 수식의값이참이면문장이실행된다. 5 증감을실행하고 2 로돌아간다.
예제 예제
팩토리얼예제 while 루프와 for 루프와의관계
중첩반복문 중첩반복문 (nested loop): 반복문안에다른반복문이위치 예제
중간점검문제 1. 다음코드의출력을쓰시오. for(int i = 1; i < 5; i++) System.out.print(2 * i + " "); 2. 다음코드의출력을쓰시오. for(int i = 10; i > 0; i = i - 2) System.out.println("Student" " + n); 3. 다음코드의출력을쓰시오. for(int i = 1; i < 6; i++) for(int j = 5; j >= 1; i--) System.out.println(i t tl + " 곱하기 + j + " 은 + i*j); break 문
coninue 문 중간점검문제 1. 다음코드의출력을쓰시오. int n = 12; while (n > 0) { n=n-2; if(n==6) break; System.out.println(n); } 2. 1 번문제에서 break 를 continue 로변경하면어떻게되는가?
Q & A