Java practice If Syntax Kim Jinsik... destiny738.tistory.com
목차 1. If syntax 2. 문제소개 3. 변수를 선택하는 방법 4. 문제 풀이 2
Syntax if문은 예외적인 상황 처리에 사용한다. if, else if, else는 하나의 묶음이다. 1. If Syntax 둘 중 한 곳으로 Input T Syntax F T와 F 위치는 변환 가능 if문은 예외적인 상황 처리에 사용한다. if, else if, else는 하나의 묶음이다. if, else if, else의 비교 대상은 같아야 한다. if ( 조건문1 ) { statement1; } else if ( 조건문2) { statements2; } else if ( 조건문 3) { statements3; } else { statements4; } int a = 1; int b = 1; if ( a == 1 ) { printf( a is one ); }else if ( b == 1 ){ printf( b is one ); } Worst!! int a = 1; int b = 1; if ( a == 1 ) { printf( a is one ); } if ( b == 1 ){ printf( b is one ); Good! 우리는 한 묶음 3
Select correct coding! 1. If Syntax 점수의 분포에 따라 다음과 같이 성적을 준다. 80점 이상 90점 미만은 B, 70점 이상 80점 미만은 C. 70점 미만은 D if ( score >= 90 ) { grade = ‘A’; } if ( score >= 80 && score < 90 ) { grade = ‘B’; if ( score >= 70 && score < 80 ) { grade = ‘C’; if ( score < 70 ){ grade = ‘D’; if ( score >= 90 ) { grade = ‘A’; }else if ( score >= 80 && score < 90 ) { grade = ‘B’; } else if ( score >= 70 && score < 80 ){ grade = ‘C’; } else { grade = ‘D’; } 4
Select correct coding! 1. If Syntax 점수의 분포에 따라 다음과 같이 성적을 준다. 80점 이상 90점 미만은 B, 70점 이상 80점 미만은 C. 70점 미만은 D if ( score >= 90 ) { grade = ‘A’; }else if ( score >= 80 ) { grade = ‘B’; } else if ( score >= 70 ){ grade = ‘C’; } else { grade = ‘D’; } if ( score >= 90 ) { grade = ‘A’; } if ( score >= 80 ) { grade = ‘B’; if ( score >= 70 ) { grade = ‘C’; if ( score < 70 ){ grade = ‘D’; 5
Select correct coding! 1. If Syntax 점수의 분포에 따라 다음과 같이 성적을 준다. 80점 이상 90점 미만은 B, 70점 이상 80점 미만은 C. 70점 미만은 D if ( score >= 90 ) { grade = ‘A’; } if ( score >= 80 && score < 90 ) { grade = ‘B’; if ( score >= 70 && score < 80 ) { grade = ‘C’; if ( score < 70 ){ grade = ‘D’; Bad Coding! if ( score >= 90 ) { grade = ‘A’; }else if ( score >= 80 && score < 90 ) { grade = ‘B’; } else if ( score >= 70 && score < 80 ){ grade = ‘C’; } else { grade = ‘D’; } Good! But Not best! 6
Select correct coding! 1. If Syntax 점수의 분포에 따라 다음과 같이 성적을 준다. 80점 이상 90점 미만은 B, 70점 이상 80점 미만은 C. 70점 미만은 D if ( score >= 90 ) { grade = ‘A’; }else if ( score >= 80 ) { grade = ‘B’; } else if ( score >= 70 ){ grade = ‘C’; } else { grade = ‘D’; } Best! if ( score >= 90 ) { grade = ‘A’; } if ( score >= 80 ) { grade = ‘B’; if ( score >= 70 ) { grade = ‘C’; if ( score < 70 ){ grade = ‘D’; Worst! Error! 7
2. 문제 소개 3장 프로그래밍 문제 8번 남성들과 여성들의 이상적인 체중을 계산하는 프로그램을 설계하고 작성하라. 한 연구에 따르면 여성의 이상적인 체중은 다음과 같이 계산된다. ~ 신장이 150cm를 초과한다면 ( 37.8 + 0.75 * (신장 – 150 )) kg ~ 신장이 150cm 이하라면 37.8kg이다. 남성의 이상적인 체중은 다음과 같이 계산된다. ~ 신장이 150cm를 초과한다면 ( 40 + 0.89 * ( 신장 – 150 )) kg ~ 신장이 150cm 이하라면 40kg이다. 프로그램은 사용자에게 여성의 신장과 남성의 신장을 물어보아야 한다. 그 다음에 그 여성의 이상적인 체중과 그 남성의 이성적인 체중을 계산한 후 출력해야 한다. 다음은 모범 출력이다. 여성의 신장을 입력하세요: 158 남성의 신장을 입력하세요: 175 여성의 이상적인 체중은 43.8kg이다. 남성의 이상적인 체중은 62.25kg이다. 8
Step 1 Step 2 Step 3 Step 4 변수를 선택하는 3 Step! 3. 변수를 선택하는 방법 ~ 변수의 특징!! 문제의 명사에 존재한다!! Step 1 프로그램의 목표(변수/상태)를 설정한다. Step 2 목표(변수/상태)를 구하는데 필요한 값을 변수로 설정한다. Step 3 사용자 입력과 출력(필요하다면)을 변수로 설정한다. Step 4 특별한 요구사항을 파악하고, 변수를 검토한다. 9
Step 1 Step 1 !! 프로그램을 작성하는 목표 또는 출력해줄 값을 선택하자! 3. 변수를 선택하는 방법 프로그램의 목표(변수/상태)를 설정한다. 프로그램을 작성하는 목표 또는 출력해줄 값을 선택하자! [문제 8] 남성들과 여성들의 이상적인 체중을 계산하는 프로그램을 설계하고 작성하라. 프로그램의 목표 : 이상적인 체중을 계산하는 프로그램 목표 출력 : 이상적인 체중 변수 지정 : idealWeight 10
Step 2 Step 2 !! 목표 변수를 구하는 식 또는 문장에서 관련된 명사를 찾자! 3. 변수를 선택하는 방법 목표(변수/상태)를 구하는데 필요한 값을 변수로 설정한다. 목표 변수를 구하는 식 또는 문장에서 관련된 명사를 찾자! [문제 8] 한 연구에 따르면 여성의 이상적인 체중은 다음과 같이 계산된다. ~ 신장이 150cm를 초과한다면 ( 37.8 + 0.75 * (신장 – 150 )) kg ~ 신장이 150cm 이하라면 37.8kg이다. 남성의 이상적인 체중은 다음과 같이 계산된다. ~ 신장이 150cm를 초과한다면 ( 40 + 0.89 * ( 신장 – 150 )) kg ~ 신장이 150cm 이하라면 40kg이다. 체중을 구하기 위해 필요한 값 : 성별, 신장. 변수 지정 : gender(성별), height(신장) 11
Step 3 Step 3 !! 입력을 받아들일 때는 변수가 반드시 필요하다. 3. 변수를 선택하는 방법 Step 3 !! Step 3 사용자 입력과 출력(필요하다면)을 변수로 설정한다. 입력을 받아들일 때는 변수가 반드시 필요하다. 출력을 할 때에는 필요 할 수도, 있고 안 할 수도 있다. [문제 8] 프로그램은 사용자에게 여성의 신장과 남성의 신장을 물어보아야 한다. 사용자로부터 받아들이는 값 : 여성의 신장, 남성의 신장. 변수 지정 : manHeight, womanHeight 12
Step 4 Step 4 !! 특별한 요구사항과 지금까지 생성한 변수를 모두 나열한 후 생각하자! 3. 변수를 선택하는 방법 특별한 요구사항을 파악하고, 변수를 검토한다. 특별한 요구사항과 지금까지 생성한 변수를 모두 나열한 후 생각하자! [문제 8] 여성의 이상적인 체중과 남성의 이성적인 체중을 계산한 후 출력해야 한다. 목표 출력 : 이상적인 체중 >> 남성과 여성 동시 계산 필요 변수 지정 : idealWeight >> idealManWeight, idealWomanWeight 체중을 구하기 위해 필요한 값 : 성별, 신장 변수 지정 : gender(성별), height(신장) 사용자로부터 받아들이는 값 : 여성의 신장, 남성의 신장. 변수 지정 : manHeight, womanHeight >> 남성과 여성의 신장을 한 번에 받아들여 계산한다. >> gender, height 변수를 삭제 13
3장 프로그래밍 문제 8번 설계 4. 문제 풀이 ☞ 변수 설계 idealManWeight : 남성의 이상적인 몸무게 계산 결과 idealWomanWeight : 여성의 이상적인 몸무게 계산 결과 manHeight : 남성의 신장 womanHeight : 여성의 신장 ※ 키, 몸무게에 대한 입/출력 단서가 없으므로 모두 실수형으로 타입을 정했다. 14
3장 프로그래밍 문제 8번 설계 2. 문제 소개 ☞ 알고리즘 [문제] 프로그램은 사용자에게 여성의 신장과 남성의 신장을 물어보아야 한다. 그 다음에 그 여성의 이상적인 체중과 그 남성의 이성적인 체중을 계산한 후 출력해야 한다. 1. 여성의 신장(womanHeight)과 남성(manHeight)의 신장을 사용자로부터 받는다. 2. 여성의 신장에 따라 다음을 나눠서 시행한다. 2-1) 여성의 신장이 150cm를 초과한다면, idealWomanWeight = 37.8 + 0.75 * ( womanHeight – 150 )); 2-2) 그렇지 않다면, idealWomanWeight = 37.8; 3. 남성의 신장에 따라 다음을 나눠서 시행한다. 3-1) 남성의 신장이 150cm를 초과한다면, idealManWeight = 40 + 0.89 * ( manHeight – 150 )); 3-2) 그렇지 않다면, idealManWeight = 40; 15
3장 프로그래밍 문제 8번 설계 4. 문제 풀이 ☞ Flow Chart T F T F Start << input >> womanHeight manHeight womanHeight > 150 T idealWomanWeight = 37.8+0.75*(womanHeight-150) F idealWomanWeight = 37.8 manHeight > 150 T idealManWeight = 40 +0.89*(manHeight-150) F idealManWeight = 40 << output >> idealManWeight idealWomanWeight End 16
3장 프로그래밍 문제 8번 코드 4. 문제 풀이 Answer is not one!! 17 public class IdealWeight { public static void main(String[] args){ // variable double manHeight; // 남성의 신장 double womanHeight; // 여성의 신장 double idealManWeight; // 남성의 이상적인 몸무게 계산 결과 double idealWomanWeight; // 여성의 이상적인 몸무게 계산 결과 Scanner s = new Scanner(System.in); // Input the data System.out.print("여성의 신장을 입력하세요: "); womanHeight = s.nextDouble(); System.out.print("남성의 신장을 입력하세요: "); manHeight = s.nextDouble(); // calculator Ideal weight. if ( womanHeight > 150 ) { idealWomanWeight = 37.8 + 0.75 * ( womanHeight - 150 ); }else{ idealWomanWeight = 37.8; } if ( manHeight > 150 ) { idealManWeight = 40 + 0.89 * ( manHeight - 150 ); idealManWeight = 40; // Output the result System.out.println("여성의 이상적인 체중은 " + idealWomanWeight +"Kg이다."); System.out.println("남성의 이상적인 체중은 " + idealManWeight + "Kg이다."); } } Answer is not one!! 17
3장 프로그래밍 과제(10번, 11번) 1. 문제소개 <10번> 한 대학의 졸업요건은 다음과 같다. - 총 이수학점이 140점 이상이고, TOEIC 점수가 700점 이상이면 졸업한다. - 총 이수학점이 140점 이상이나 TOEIC 점수가 700점 미만이면 수료만 한다. - 총 이수학점이 140점 미만이면 졸업도 안 되고 수료도 안 된다. 학생의 총 이수학점과 TOEIC 점수를 입력 받아 졸업이나 수료 여부를 알려주는 프로그램을 설계하고 구현하라. 2 2 2 2 3 1 step2와 step3 중복!! 4 졸업여부, 이수학점, TOEIC점수 18
3장 프로그래밍 과제(10번, 11번) 1. 문제소개 <11번> 신용카드 회사 고객에게 매월 보내지는 카드 이용대금 명세서를 작성하는 프로그램을 설계하고 구현하라. 프로그램은 이전 잔고(미결제 금액)과 당월 사용금액을 입력 받아야 한다. 그 다음으로 연체이자, 새 잔고(입금해야 할 총 금액)와 최소 입금액을 계산해야 한다. 이전 잔고가 0보다 크다면 연체이자는 이전 잔고와 당월 사용금액 합의 2%이다. 최소 입금액은 다음과 같이 계산된다. - 새 잔고가 100,000원보다 작으면 최소 입금액은 새 잔고이다. - 새 잔고가 100,000원보다 이상 300,000원 이하이면 최소 입금액은 100,000원이다. - 새 잔고가 300,000원보다 크다면 최소 입금액은 새 잔고의 20%이다. 1 3 1 2 2 2 2 2 step2와 step3 중복!! 연체이자, 새 잔고, 최소 입금액, 이전 잔고, 당월 사용금액 ※ 잔고 : 나머지 금액. ‘나머지’, ‘잔액’으로 순화. 이전 잔고 ≒ 연체료(할부 남은 거) 새 잔고 ≒ 이 번달 내야 할 총액 4 19
감사합니다! 이 문서는 나눔글꼴로 작성되었습니다. 설치하기