Presentation is loading. Please wait.

Presentation is loading. Please wait.

For/While Syntax & Practice!!

Similar presentations


Presentation on theme: "For/While Syntax & Practice!!"— Presentation transcript:

1 For/While Syntax & Practice!!
Kim Jinsik destiny738.tistory.com

2 목차 1. For/While Syntax 2. 문제 소개 3. 문제 풀이 4. 설계 문서 1

3 For/While Syntax 1 1. Syntax 2 사용처 주의점 반복적인 행위가 필요할 경우
사용자에게 반복적으로 값을 입력 받을 경우 특정 상태가 올 때까지 프로그램이 반복돼야 하는 경우 우리를 반복문으로 만들어줘 주의점 while과 do-while의 차이 나가는 시점 정의(증감연산, if문 사용) 조건에 실수값 사용 자제 while ( expression ){ expression is true; } expression is false for ( initialization ; expression ; statement ){ 초기 연산 초기 연산 F 조건 실행문 증감연산 T T 실행문 증감 연산 조건 F 2

4 For/While Syntax 1 2. Caution 3 while과 do-while의 차이
While문에서 하는 행위를 while문 이전에도 할 경우 do-while을 사용하는 것이 좋다. example) 사용자에게 숫자를 입력 받는다. 5이상의 숫자를 입력 받는 경우 프로그램은 종료된다. * while/for int i = 0; while( i < 5 ) i++; for ( int i = 0 ; i < 5 ; i++ ) ; int number; Scanner s = new Scanner(System.in); number = s.nextInt(); System.out.println(“Your input : “+ number); while ( number < 5 ) { } System.out.println(“Program END”); int number; Scanner s = new Scanner(System.in); do { number = s.nextInt(); System.out.println(“Your input : “+ number); } while ( number < 5 ) ; System.out.println(“Program END”); 3

5 For/While Syntax 1 2. Caution 4 나가는 시점 정의 / 조건에 실수값 사용 자제
반복문이 무한 반복이 돌지 않도록 주의 하자! 조건을 향해 움직여야 한다. 조건에 사용되는 변수는 정수를 권장하며, ==, != 연산은 쓰지 않는 것이 좋다. 특히, 반복문 내부에서 조건에 사용되는 변수가 사용될 경우는 ==, !=은 사용하지 말자! example) 무한 반복하는 하지 않는 구문을 고르시오. double loopCounter = 0; while ( loopCounter != 1.0 ) loopCounter = loopCounter + 0.1; } 실수 사용 조건에서 멀어지고 있음 for ( int count = 0 ; count > 0 ; count++ ) ; 의도적 무한 Loop for ( int i = 1 ; i != 20 ; i++ ) { i = i * 2; } while ( true ) { //statements; } ==, != 사용 내부에서 변수 변환 4

6 문제소개 2 1. 문제소개 5 한 대학교 앞에 할인 마트가 있다. 이 가게의 모든 상품 가격은 500원 이하이다.
고객이 이 가게에서 물건 한 개를 사고 500원을 낼 때 거스름돈을 계산하는 프로그램을 설계하고 작성하라. 거스름돈은 반드시 100원, 10원, 1원짜리 동전으로 주어야 한다. 또한 동전의 개수를 최소화해야 한다. 다음과 같은 포맷(물건의 가격을 입력으로 받는다.)을 사용하라. 구매 금액을 입력하세요 [0-500] : 122 378원의 거스름돈은 다음과 같다: 100원짜리 동전 3개 10원짜리 동전 7개 1원짜리 동전 개 Hint : 378/100 = 3, 378 % 100 = 78 5

7 문제 풀이 3 1. 변수 설계 Step 1. 프로그램의 목적 Step 2. 목적과 관련된 것 6
한 대학교 앞에 할인 마트가 있다. 이 가게의 모든 상품 가격은 500원 이하이다. 고객이 이 가게에서 물건 한 개를 사고 500원을 낼 때 거스름돈을 계산하는 프로그램을 설계하고 작성하라. 거스름돈은 반드시 100원, 10원, 1원짜리 동전으로 주어야 한다. 또한 동전의 개수를 최소화해야 한다. 다음과 같은 포맷(물건의 가격을 입력으로 받는다. )을 사용하라. 거스름돈 : change Step 2. 목적과 관련된 것 한 대학교 앞에 할인 마트가 있다. 이 가게의 모든 상품 가격은 500원 이하이다. 고객이 이 가게에서 물건 한 개를 사고 500원을 낼 때 거스름돈을 계산하는 프로그램을 설계하고 작성하라. 거스름돈은 반드시 100원, 10원, 1원짜리 동전으로 주어야 한다. 또한 동전의 개수를 최소화해야 한다. 다음과 같은 포맷(물건의 가격을 입력으로 받는다. )을 사용하라. 각 동전의 개수 : countOnehundred. countTen. countOne. 6

8 문제 풀이 3 1. 변수 설계 Step 3. 입출력 변수 Step 4. 변수 검토 7
한 대학교 앞에 할인 마트가 있다. 이 가게의 모든 상품 가격은 500원 이하이다. 고객이 이 가게에서 물건 한 개를 사고 500원을 낼 때 거스름돈을 계산하는 프로그램을 설계하고 작성하라. 거스름돈은 반드시 100원, 10원, 1원짜리 동전으로 주어야 한다. 또한 동전의 개수를 최소화해야 한다. 다음과 같은 포맷(물건의 가격을 입력으로 받는다. )을 사용하라. 물건의 가격 : price Step 4. 변수 검토 거스름돈 : change 각 동전의 개수 : countOnehundred. countTen. countOne. 물건의 가격 : price ※ 포맷을 참조하니 정수형(int)으로 설계하는 하였다. 7

9 문제 풀이 3 2. 알고리즘 설계 8 동전의 개수를 최소화해야 한다.
동전의 개수를 최소화 하기 위해서는 가격이 높은 동전일 수록 많이 주면 된다. 이를 이용하여 동전의 가치가 큰 것부터 계산을 한다. 다음과 같은 포맷을 사용하라. 구매 금액을 입력하세요 [0-500] : 122 378원의 거스름돈은 다음과 같다: 100원짜리 동전 3개 10원짜리 동전 7개 1원짜리 동전 개 포맷을 이용하여 알고리즘의 순서를 생각하자. 구매 금액을 사용자에게 입력 받는다. 거스름 돈을 계산한 후 출력한다. 100원 개수 = 거스름 돈 / 원 이후 잔금(거스름 돈) = 거스름 돈 % 100 10원 개수 = 거스름 돈 / 10 10원 이후 잔금(거스름 돈) = 거스름 돈 % 10 1원 개수 = 거스름돈 / 1 출력 문에 맞춰서 각각의 동전의 개수를 출력해준다. 8

10 countOnehundred = change / 100
문제 풀이 3 3. Flow chart start 구매 금액을 사용자에게 입력 받는다. 거스름 돈을 계산한 후 출력한다. 100원 개수 = 거스름 돈 / 원 이후 잔금(거스름 돈) = 거스름 돈 % 100 10원 개수 = 거스름 돈 / 10 10원 이후 잔금(거스름 돈) = 거스름 돈 % 10 1원 개수 = 거스름돈 / 1 출력 문에 맞춰서 각각의 동전의 개수를 출력해준다. 반복문?? <input> price change = price countOnehundred = change / 100 change = change % 100 countTen = change / 10 change = change % 10 countOne = change / 1 <output> countOnehundred countTen countOne end 9

11 문제 풀이 3 4. 재설계 Step 4. 변수 검토 10 거스름돈 : change
각 동전의 개수 : countOnehundred. countTen. countOne. 물건의 가격 : price ※ 포맷을 참조하니 정수형(int)으로 설계하는 하였다. 구매 금액(price)을 사용자에게 입력 받는다. 거스름 돈을 계산(change = 500-price)한 후 출력한다. 100원 개수 = 거스름 돈 / 원 이후 잔금(거스름 돈) = 거스름 돈 % 100 10원 개수 = 거스름 돈 / 10 10원 이후 잔금(거스름 돈) = 거스름 돈 % 10 1원 개수 = 거스름돈 / 1 출력 문에 맞춰서 각각의 동전의 개수를 출력해준다. 100 → 10 → 1 (돈의 가치가 0.1배씩 떨어진다.) 동전의 개수를 저장하지 말고 바로 출력하자. 각 동전의 개수를 저장하는 변수가 필요 없다. 현재 거스름돈의 단위를 계산하는 동전만 알면 된다. * 새로운 변수 - change(거스름돈), price(가격) - setMoney(현재 거스름돈 단위) 10

12 문제 풀이 3 4. 재설계 Step 4. 변수 검토 11 거스름돈 : change 물건의 가격 : price
현재 거스름돈 단위 : setMoney ※ 포맷을 참조하니 정수형(int)으로 설계하는 하였다. 구매 금액(price)을 사용자에게 입력 받는다. 거스름 돈을 계산(change = 500-price)한 후 출력한다. 100원 개수 = 거스름 돈 / 원 이후 잔금(거스름 돈) = 거스름 돈 % 100 10원 개수 = 거스름 돈 / 10 10원 이후 잔금(거스름 돈) = 거스름 돈 % 10 1원 개수 = 거스름돈 / 1 출력 문에 맞춰서 각각의 동전의 개수를 출력해준다. 구매 금액(price)을 사용자에게 입력 받는다. 거스름 돈을 계산(change = 500-price)한 후 출력한다. setMoney를 100으로 저장 후 setMoney가 1보다 크면 다음을 반복한다. change / setMoney 값을 출력 change = change % setMoney setMoney = setMoney * 0.1; End Program 11

13 change = change % setMoney
문제 풀이 3 5. 재설계 - Flow chart 구매 금액(price)을 사용자에게 입력 받는다. 거스름 돈을 계산(change = 500-price)한 후 출력한다. setMoney를 100으로 저장 후 setMoney가 1이상이면 다음을 반복한다. change / setMoney 값을 출력 change = change % setMoney setMoney = setMoney * 0.1; End Program start <input> price change = price setMoney = 100 <output> change / setMoney T change = change % setMoney setMoney = setMoney * 0.1 setMoney >= 1 F end 12

14 설계 문서 4 1. 예시 13

15 KIND ACTION

16 THANK YOU


Download ppt "For/While Syntax & Practice!!"

Similar presentations


Ads by Google