Power Java 제6장 조건과 반복
이번 장에서 학습할 내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문 지금까지는 문장들이 순차적으로 실행된다고 하였다. 하지만 필요에 따라서 조건이 만족되면 문장의 실행 순서를 변경할 수 있는 기능이 제공된다. 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문
3가지의 제어 구조 그림 6-1 . 3가지의 제어 구조
조건문 조건에 따라서 여러 개의 실행 경로 가운데 하나를 선택 문장이 실행되는 순서에 영향을 주는 문장 조건에 따라서 여러 개의 같은 처리를 반복
일상 생활에서의 조건문의 예 만약 비가 오지 않으면 테니스를 친다. 만약 결석이 1/3이상이면 F학점을 받는다. 만약 시간이 없는 경우에는 택시를 탄다. 만약 날씨가 좋고 공휴일이면 공원에 산책을 간다. 점수가 60점 이상이면 합격이고 그렇지 않으면 불합격이다. 조건문은 프로그램의 흐름을 변경합니다.
if-else 문
조건문의 예 여기서 else절은 생략될 수도 있다. 이 경우를 if-then구조라고 한다.
복합문 복합문(compound statement) 중괄호를 이용하여 문장들을 그룹핑 하는 것, 블록(block)이라고 한다. 단일문 대신 들어 갈 수 있다.
예제 시간을 입력하시오: 8 임금은 40000입니다.
중첩 if if 문에 다시 if 문이 포함 if( 조건식1 ) if( 조건식2 ) 문장;
If 문안의 문장자리에 if-else 문이 들어간 경우
만약 다른 if절과 else 절을 매치 시키려면 중괄호를 사용하여 블록으로 묶는다. if( grade >= 80 ) { if(grade >= 90 ) System.out.println("당신의 학점은 A입니다."); } else System.out.println("당신의 학점은 A나 B가 아닙니다."); 만약 다른 if절과 else 절을 매치 시키려면 중괄호를 사용하여 블록으로 묶는다.
연속적인 if if( 조건식1 ) 문장1; else if( 조건식2 ) 문장2; else if( 조건식3 ) 문장3; else 문장1; else if( 조건식2 ) 문장2; else if( 조건식3 ) 문장3; else 문장4;
학점 부여 예제
예제 과세 표준 금액을 입력하시오:3000 소득세는 540입니다.
중간 점검 문제 변수 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 문 여러 가지 경우 중에서 하나를 선택하는데 사용
예제
예제
예제
예제 일수를 알고 싶은 달을 입력하시오:6 월의 날수는 30
중간 점검 문제 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("바나나"); default:System.out.println("과일"); }
반복 구조는 일련의 처리를 반복할 수 있게 한다. 반복의 개념을 먼저 이해하고 3가지의 반복 구조에 대하여 학습한다. 이번 장에서 학습할 내용 반복 구조는 일련의 처리를 반복할 수 있게 한다. 반복의 개념을 먼저 이해하고 3가지의 반복 구조에 대하여 학습한다. 반복의 개념 이해 while 반복문 do-while 반복문 for 반복문 break와 continue문
반복문 Q) 반복 구조는 왜 필요한가? 같은 처리 과정을 되풀이하는 것이 필요하기 때문이다. 학생 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 한다.
반복문의 종류
while 문 주어진 조건이 만족되는 동안 문장들을 반복 실행한다.
예제 정수: 0 정수: 1 정수: 2 정수: 3 정수: 4
무한 반복
예제 구구단 중에서 출력하고 싶은 단을 입력하시오: 9 9*1 = 9 9*2 = 18 9*3 = 27 ...
예제 두수의 최대 공약수 구하기 유클리드 알고리즘
예제 두개의 정수를 입력하시오(큰수, 작은수): 24 36 최대 공약수는 12입니다.
if 문과 while 문의 비교 if문은 while 문으로 변경할 수 있다. while 문도 if문으로 변경할 수 있다. { ... } while( 조건 ) 조건이 만족되면 한번만 실행된다. 조건이 만족되면 여러 번 반복 실행된다.
do-while문 반복 조건을 루프의 끝에서 검사 ① 문장들이 실행된다. ② 조건식이 계산된다. ③ 결과가 참이면 ①로 돌아간다. ④ 결과가 거짓이면 종료된다.
예제 i의 값: 10
예제
중간 점검 문제 1. 다음 코드의 출력을 쓰시오. int n = 10; while (n > 0) { System.out.println(n); n = n - 3; } 2. 1번 문제의 반복 구조를 do-while로 변경하면 출력이 어떻게 변화되는가?
for 문 정해진 횟수만큼 반복하는 구조
for 문의 구조 ① 초기화를 실행한다. ② 반복 조건을 나타내는 조건식을 계산한다. ④ 수식의 값이 참이면 문장이 실행된다. ⑤ 증감을 실행하고 ②로 돌아간다.
예제 i의 값은: 0 i의 값은: 1 i의 값은: 2 i의 값은: 3 i의 값은: 4
예제 1부터 10까지의 정수의 합 = 55
예제
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 + "곱하기“ + j + "은 ” + i*j);
break 문
continue 문 문장에서 발견된 n의 개수 3
중간 점검 문제 1. 다음 코드의 출력을 쓰시오. int n = 12; while (n > 0) { n = n - 2; if( n == 6 ) break; System.out.println(n); } 2. 1번 문제에서 break를 continue로 변경하면 어떻게 되는가?
LAB: 파이 구하기 파이를 계산하는 가장 고전적인 방법은 Gregory-Leibniz 무한 수열을 이용하는 것
실행 결과 반복횟수:100000 Pi = 3.141583 계속하려면 아무 키나 누르십시오 . . .
알고리즘
SOURCE