400 likes | 582 Views
프로그래밍 기초. 제 3 주 2014 년 1 학기 강원대학교 컴퓨터학부 담당교수 : 정충교. 4 장 선택과 결정 : if 문. if 문. if (sale < 25.00) { total += SHIPPING_FEE; System.out.println("Shipping is $5.00"); } sale < 25.00 <-- 부울 표현식 부울 표현식이 참이면 중괄호로 둘러싸인 두 개의 문장 실행 부울 표현식이 거짓이면 중괄호로 둘러싸인 문장들을 건너뜀.
E N D
프로그래밍 기초 제 3주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교 강원대학교
4장 선택과 결정: if 문 강원대학교
if 문 if (sale < 25.00) { total += SHIPPING_FEE; System.out.println("Shipping is $5.00"); } sale < 25.00 <-- 부울 표현식 • 부울 표현식이 참이면 중괄호로 둘러싸인 두 개의 문장 실행 • 부울 표현식이 거짓이면 중괄호로 둘러싸인 문장들을 건너뜀 강원대학교
if 문 (조건문, 선택문) if ( boolean-expression ) { statement-1; statement-2; … statement-n; } statement following statement-n
if 문 (조건문, 선택문) if ( boolean-expression ) // 조건절 (if clause) { statement-1; statement-2; … statement-n; } statement following statement-n
if 문 (조건문, 선택문) if ( boolean-expression ) { statement-1; statement-2; … statement-n; } statement following statement-n // 블럭 (block) statement - 문장 stat 문장이 한 개만 있는 경우 중괄호 생략 가능 중괄호가 없는 한 개의 문장은 블록이라고 하지 않음
if 문 int max = a; if (b > max) { max = b; } if (c > max) { max = c; } System.out.println(“The maximum value is “+max); int max = a; if (b > max) { max = b; } if (c > max) { max = c; } int max = a; if (b > max) max = b; if (c > max) max = c; System.out.println (“The maximum value is ” +max); 강원대학교
문제 • 키보드로부터 상품가격을 받는다. • 부가세 10% 계산 • 상품가격이 5000원 미만일 때만 배송료 3000원 • 총 결제금액 계산 강원대학교
뼈대 public class BillCalculator { public static void main (String[] args) { double sale, taxes, total; final double TAX_RATE= 0.1; final double SHIPPING_FEE = 3000.0; } } 강원대학교
if-else 문 if (boolean-expression) statement-list-1 else statement-list-2
문제 • 키보드로부터 상품가격을 받는다. • 부가세 10% 계산 • 상품가격이 5000원 미만일 때만 배송료 3000원 • 상품가격이 5000원 이상일 때만 쿠폰 제공 (5000원 초과금액에 대해 1000원당 1장) • 총 결제금액 계산 강원대학교
문제 • 키보드로부터 상품가격을 받는다. • 부가세 10% 계산 • 상품가격이 5000원 미만일 때만 배송료 3000원 • 상품가격이 • 총 결제금액 계산 강원대학교
if-else 문 Scanner input =new Scanner(System.in); final double DOLLARS_PER_EURO =1.31; // exchange rate int transactionType; double euros, dollars; System.out.print("1 from dollars to euros, 2 from euros to dollars: " ); transactionType = input.nextInt(); // 변수 선언과 초기화 if (transactionType == 1) // 달러를 유로화로 { System.out.print("Number of dollars: "); dollars = input.nextDouble(); euros = dollars/DOLLARS_PER_EURO; System.out.println("Number of euros: " + euros); } else // 그렇지 않으면 유로화를 달러로 { System.out.print("Number of euros: "); euros = input.nextDouble(); dollars = euros* DOLLARS_PER_EURO; System.out.println("Number of dollars: " + dollars); } 강원대학교
중첩 if-else 문 int grade = input.nextInt(); if ( grade >=70 ) { if ( grade >= 90) System.out.println( “High pass”); else System.out.println(“Pass”); // 문장이 하나인 경우 중괄호가 없어도 됨 } else System.out.println(“Fail”); 들여쓰기를 잘 해야 한다! 강원대학교
int grade = input.nextInt(); if ( grade >=70 ) { if ( grade >= 90) System.out.println( “High pass”); else System.out.println(“Pass”); // 문장이 하나인 경우 중괄호가 없어도 됨 } else System.out.println(“Fail”); Scanner input = new Scanner(System.in); int grade = input.nextInt(); if ( grade >=70 ) if ( grade >= 90) // 붉은 색 전체가 하나의 문장 System.out.println("High pass"); // (if-else 문) else // 문장이 하나이므로 중괄호가 System.out.println("Pass"); // 없어도 됨 else System.out.println("Fail"); 강원대학교
들여 쓰기는 사람을 위한 것이다.컴퓨터는 들여쓰기를 무시한다. if (a > 1) if (b > 10) System.out.println(“짜장”) else System.out.println(“짬뽕”); if (a > 1) if (b > 10) System.out.println(“짜장”) else System.out.println(“짬뽕”); 들여쓰기는 중요하다. 꼭 해야 한다. 강원대학교
else는 가장 가까이 있는 if와 짝을 이룬다. if (a > 1) if (b > 10) System.out.println(“짜장”) else System.out.println(“짬뽕”); if (a > 1) if (b > 10) System.out.println(“짜장”) else System.out.println(“짬뽕”); 강원대학교
가위 바위 보 게임 • 교재 122쪽 예제 4.3 강원대학교
else-if 구조 if (testscore >= 90) grade = 'A'; else if (testscore >= 80) grade = 'B'; else if (testscore >= 70) grade = 'C'; else if (testscore >= 60) grade = 'D'; else grade = 'F'; if (testscore >= 90) grade = 'A'; else if (testscore >= 80) grade = 'B'; else if (testscore >= 70) grade = 'C'; else if (testscore >= 60) grade = 'D'; else grade = 'F'; 강원대학교
switch 문 if ( grade == ‘A’) System.out.println(“Excellent”); else if (grade ==’B’) System.out.println(“ Good”); else if (grade ==’C’) System.out.println(“Average”); else if (grade ==’D’) System.out.println(“Passing”); else System.out.println(“Failure”); switch(grade) { case ‘A’: System.out.println(“Excellent”); break; case ‘B’: System.out.println(“Good”); break; case ‘C’: System.out.println(“Average”); break; case ‘D’: System.out.println(“Passing”); break; default : System.out.println(Failure”); } 강원대학교
switch (switch-expression) { case casevalue-1: statement; statement; … statement; break; case casevalue-2: statement; statement; … statement; break; … case casevalue-n: statement; statement; … statement; break; default: statement; … statement; } switch-expression은 정수형이나 문자형 표현식 casevalue에는 정수형이나 문자형 "상수"만 가능 break를 생략하면 동작이 달라짐 default절은 생략 가능 강원대학교
// test1, test 2, test3은 각각 0부터 4 사이의 정수 값이다. switch( (test1+test2+test3)/3 ) // 정수형이나 문자형 표현식 { case 4: System.out.println(“Grade: A”); break; case 3: System.out.println(“Grade: B”); break; case 2: System.out.println(“Grade: C”); break; case 1: System.out.println(“Grade: D”); break; default: System.out.println(“Grade: F”); } 강원대학교
switch(diceValue) { case 7: case 11: System.out.println(“You rolled ” + value + “ you win!”); break; case 2: case 3: case 12: System.out.println(“You rolled ” + value + “ you lose!”); break; default: System.out.println(“You rolled ” + value + “that’s you point!”); } if (diceValue == 7 || diceValue == 11) System.out.println(“You rolled ” + value + “ you win!”); else if (diceValue == 2 || diceValue == 3 || diceValue == 12) System.out.println(“You rolled ” + value + “ you lose!”); else System.out.println(“You rolled ” + value + “that’s you point!”); 강원대학교
부울표현식 (Boolean Expression) if ( boolean-expression ) 계산 결과가 boolean 형인 표현식 강원대학교
진리표 강원대학교
관계연산자 • 정수형, 실수형, 문자형에 적용 • 계산 결과가 boolean 형 < 작다 <= 작거나 같다 > 크다 >= 크거나 같다 == 같다 != 같지 않다 문자형의 경우 유니코드 값으로 비교 'A' < 'C' ? true 65 67 '1' < '2' ? true 49 50 강원대학교
연산자 강원대학교
예 5 < 3 || 6 > 2 false || true--> true 1+14 % 5 == 0 false 'A' <'B' true( 65 < 66이므로) 'Z' < 'a' true('Z' 의 코드는 90, 'a' 의 코드는 97) 1+1==2 || 1+1 == 3 true|| false--> true 강원대학교
예 37/3 > .3333 true 2<3 && 4<5 || 7<=5 && 2==3 true|| false--> true 2<3 && ( 4<5 || 7<=5) && 2==3 true&& true&& false--> false false== falsetrue true!= falsetrue 강원대학교
2 < 3 < 4와 같은 표현은 잘못이다. 자바는 이 표현식을 다음과 같이 평가하려고 할 것이다. (2<3) < 4 참 < 4 '참 < 4' 는 유효하지 않는 표현이기 때문에 오류가 발생한다. (2<3) && (3<4) 과 같이 적어야 한다. 강원대학교
부울표현식 부울표현식은 표현식의 값이 결정될 때까지만 좌측에서 우측으로 계산된다. 5<3 || 10<1 --> false 5<3 && 10<1 --> false 5>3 || 10<1 --> true 5>3&& 10<1 --> true 강원대학교
숙제와 실습과제 강원대학교
3주 강원대학교
교재 읽어오기 144쪽 – 147쪽 요약과 오류예방 기한 3월 18일 화요일 (1반) 3월 19일 수요일 (2반) 강원대학교
단답형 문제 교재 148쪽 단답형 문제 1번 – 5번 단, 아래 문제 제외 1번 h, i, j 2번 n, o, p 5번 c 기한 3월 24일 월요일 (1반), 3월 25일 화요일 (2반) 각자 손으로 적어서 수업시간에 제출 (문제는 적지 않고 답만 적으면 됨) 강원대학교
실습과제 교재 153쪽 프로그래밍 문제 1번 -5번 클래스 이름은 아래와 같이 지으시오. 1 NumberSort 2 TaxCalculator 3 SumOfPositiveNumbers 4 VendingMachine 5 MedicalDiagnosis 3월 23일 일요일 24시까지 각 팀별로 이메일로 제출 강원대학교
4주 강원대학교
단답형 문제 교재 150쪽 단답형 문제 8번 – 10번 기한 3월 31일 월요일 (1반) 4월 1일 화요일 (2반) 각자 손으로 적어서 수업시간에 제출 (문제는 적지 않고 답만 적으면 됨) 강원대학교
실습과제 교재 155쪽 프로그래밍 문제 7번 -13번 클래스 이름은 아래와 같이 지으시오. 7 CrapGame 8 TollFreeNumber 9 Encoding 10 MarketPrice 11 Grading 12 FriendlyNumbers 13 Commission 3월 30일 일요일 24시까지 각 팀별로 이메일로 제출 강원대학교
쪽지 시험 1반 - 3월 31일 월요일 수업시간 2반 - 4월 1일 화요일 수업시간 15분간 시행 범위 교재 4장 요약, 오류예방, 단답형문제 실습과제 1회와 동일한 비중으로 반영 중간: 25%, 기말: 35%, 쪽지시험과 과제: 30%, 출석: 10% 강원대학교