------------------------------------
조건문 (if, switch)
정보처리 기사 과목 : (전자계산)알고리즘, 데이터베이스, 전산영어
정보처리 기사 실기 시험 합격 기준
- 평균 60점 이상이어야 합격
- 평균 60점 미만 불합격.
//Ex17.java
package com.test;
public class Ex17 {
public static void main(String[] args) {
/*
정보처리 기사 과목 : (전자계산)알고리즘, 데이터베이스, 전산영어
정보처리 기사 실기 시험 합격 기준
- 평균 60점 이상이어야 합격
- 평균 60점 미만 불합격.
*/
int sub1 = 60;
int sub2 = 80;
int sub3 = 40;
double ave = (sub1 + sub2 + sub3) / 3.0;
//평균 원본 값
System.out.println(ave);
//절삭
System.out.println(Math.floor(ave)); //소수 이하 첫 번째 자리부터
System.out.println(Math.floor(ave*10)/10.0); //소수 이하 두 번째 자리부터
System.out.println(Math.floor(ave*100)/100.0); //소수 이하 세 번째 자리부터
//반올림
//Math 클래스의 round() 메소드를 이용하면
//반올림 연산을 할 수 있다.
//반환 자료형은 long 형(정수형)이 된다.
System.out.println(Math.round(ave));
//1-> ave*10 -> 616.666
//2-> Math.round(ave*10) -> 617
//3-> Math.round(ave*10)/10.0 -> 61.7
System.out.println(Math.round(ave*10)/10.0);
//소수 이하 세 번째 자리부터
System.out.println(Math.round(ave*100)/100.0);
//합격, 불합격 판단
long result = Math.round(ave);
if (result >= 60) {
System.out.printf("점수:%d -> 합격 %n", result);
} else {
System.out.printf("점수:%d -> 불합격 %n", result);
}
}
}
정보처리 기사 필기 시험 합격 기준
- 과목별 40점 이상, 평균 60점 이상이어야 합격
- 과목별 40점 미만 과락(불합격).
- 평균 60점 미만 불합격.
//Sample21.java
package com.test;
public class Sample21 {
public static void main(String[] args) {
/*
정보처리 기사 과목 : (전자계산)알고리즘, 데이터베이스, 전산영어
정보처리 기사 필기 시험 합격 기준
- 과목별 40점 이상, 평균 60점 이상이어야 합격
- 과목별 40점 미만 과락(불합격).
- 평균 60점 미만 불합격.
*/
int sub1 = 90;
int sub2 = 75;
int sub3 = 20;
double ave = (sub1 + sub2 + sub3) / 3.0;
long result = Math.round(ave);
/*
if (합격조건->평균60점이상, 과목별40점이상) {
//합격
} else {
//불합격
if (과락조건->평균60점이상) {
//과락(불합격)
} else {
//불합격
}
}
*/
System.out.printf("과목1:%d, 과목2:%d, 과목3:%d, 평균:%d %n", sub1, sub2, sub3, result);
if (result>=60
&& sub1>=40 && sub2>=40 && sub3>=40) {
System.out.println("->합격");
} else {
if (result>=60) {
System.out.println("->불합격(과락)");
} else {
System.out.println("->불합격(평균60점미만)");
}
}
}
}
문제) 특정 점수(0~100)가 특정 범위 안에 오는지 확인하고 범위명을 출력.
A등급 : 90~100
B등급 : 80~89
C등급 : 70~79
D등급 : 60~69
F등급 : 0~59
//Sample22.java
package com.test;
public class Sample22 {
public static void main(String[] args) {
//0~100 사이의 정수로 한정
int score = 89;
String grade = "";
//if문
if (score>=90) {
grade = "A등급";
} else if (score>=80) {
grade = "B등급";
} else if (score>=70) {
grade = "C등급";
} else if (score>=60) {
grade = "D등급";
} else {
grade = "F등급";
}
System.out.printf("점수: %d, 등급: %s %n", score, grade);
}
}
//Sample23.java
package com.test;
public class Sample23 {
public static void main(String[] args) {
//0~100 사이의 정수로 한정
int score = 89;
String grade = "";
//if문
if (score>=90) {
grade = "A등급";
}
if (score<90 && score>=80) {
grade = "B등급";
}
if (score<80 && score>=70) {
grade = "C등급";
}
if (score<70 && score>=60) {
grade = "D등급";
}
if (score<60) {
grade = "F등급";
}
System.out.printf("점수: %d, 등급: %s %n", score, grade);
}
}
//Sample24.java
package com.test;
public class Sample24 {
public static void main(String[] args) {
//0~100 사이의 정수로 한정
int score = 89;
String grade = "";
//if문
int result = (score / 10);
if (result==10 || result==9) {
grade = "A등급";
} else if (result==8) {
grade = "B등급";
} else if (result==7) {
grade = "C등급";
} else if (result==6) {
grade = "D등급";
} else {
grade = "F등급";
}
System.out.printf("점수: %d, 등급: %s %n", score, grade);
}
}
------------------------------------
2. switch문
- if문과 같은 조건식 검사 구문.
- 기본 형식
switch (식) {
case 값1:
실행구문;
break;
case 값2:
실행구문;
break;
default:
실행구문;
}
식의 결과값이 case 구문에 있는 값과 일치하는 경우에
case 구문을 실행합니다.
case 구문이 여러개인 경우는 첫 번째 조건을 만족하지 않는 경우
두 번째 case 구문을 검사합니다.
default 구문은 모든 case 구문이 일치하지 않는 경우에 실행됩니다.
break; 구문은 case 구문의 실행을 마치고 블럭을 나갈때 사용.
switch (식) {
case 값1:
case 값2:
실행구문;
break;
default:
실행구문;
}
식의 결과값이 값1 이거나, 값2인 경우 실행.
특정 점수(0~100)가 특정 범위 안에 오는지 확인하고 범위명을 출력.
A등급 : 90~100
B등급 : 80~89
C등급 : 70~79
D등급 : 60~69
F등급 : 0~59
//Sample25.java
package com.test;
public class Sample25 {
public static void main(String[] args) {
//0~100 사이의 정수로 한정
int score = 89;
String grade = "";
//if문 -> switch문 (일치하는 경우만 실행된다)
//switch 문에서
//case 구문은 여러개 추가 가능
//default 구문은 생략 가능
//break; 구문도 생략 가능
//실행문은 최소한의 내용으로 작성할 것.
/*
switch(식) {
case 값1: 실행문; break;
case 값2: 실행문; break;
default: 실행문; break;
}
*/
switch(score/10) {
case 10:
case 9: grade = "A등급"; break;
case 8: grade = "B등급"; break;
case 7: grade = "C등급"; break;
case 6: grade = "D등급"; break;
default: grade = "F등급"; break;
}
System.out.printf("점수: %d, 등급: %s %n", score, grade);
}
}
----------------------------------------------------------
문제) 쿠폰 도장 갯수에 따른 서비스 제공
5개 -> 커피 1잔 무료 제공
10개 -> 음료 1잔 무료 제공
15개 -> 음료 2잔 무료 제공
20개 -> 전체 금액 10% 할인
----------------------------------------------------------
문제) 2+1 계산
1개 구입시->1개 가격
2개 구입시->2개 가격
3개 구입시->(2+1 적용) 2개 가격
4개 구입시->(2+1 적용) 3개 가격
5개 구입시->(2+1 적용) 4개 가격
6개 구입시->(2+1 적용) 4개 가격
...
//Sample27.java
package com.test;
public class Sample27 {
public static void main(String[] args) {
/*
문제) 2+1 계산
1개 구입시->1개 가격
2개 구입시->2개 가격
3개 구입시->(2+1 적용) 2개 가격
4개 구입시->(2+1 적용) 3개 가격
5개 구입시->(2+1 적용) 4개 가격
6개 구입시->(2+1 적용) 4개 가격
...
*/
int a = 11;
String cp = "";
int div = (a/5);
switch(div) {
case 1: cp = "Coffe 1잔무료"; break;
case 2 : cp = "음료 1잔 무료 제공"; break;
case 3 : cp = "음료 2잔 무료 제공"; break;
case 4 : cp = "전체 금액 10% 할인"; break;
}
/* if(a == 1) {
cp = "Coffe 1잔 무료";
} else if(a == 2) {
cp = "음료 1잔 무료";
} else if(a == 3) {
cp = "음료 2잔 무료";
} else {
cp = " 전체 금액 10% 할인";
}
*/ System.out.printf("할인 내용은 : %s 입니다.", cp);
}
}
----------------------------------------------------------
가위, 바위, 보 게임에 대한 조건문 작성
가위를 1, 바위를 2, 보를 3로 표현한 경우
승패 규칙은 다음과 같다.
모든 경우의 수
user1 - user2 -> 승
1 2 2
1 3 1
2 1 2 (중복)
2 3 3
3 1 1 (중복)
3 2 3 (중복)
중복을 제거한 경우의 수
user1 - user2 -> 승
1 2 2
1 3 1
2 3 3
승과 관련한 수학적 수식
user1 - user2 -> 승
1%3->1 != (2+1)%3->0 user2
1%3->1 == (3+1)%3->1 user1
2%3->2 != (3+1)%3->1 user2
//Sample26.java
package com.test;
public class Sample26 {
public static void main(String[] args) {
/*
가위, 바위, 보 게임에 대한 조건문 작성
가위를 1, 바위를 2, 보를 3로 표현한 경우
*/
int user1 = 3;
int user2 = 2;
String s = "";
if (user1 == user2) {
//비긴 경우
s = "비겼습니다.";
} else {
/*
if ( (user1%3) == ((user2+1)%3) ) {
//user1가 이긴 경우
s = "user1이 이겼습니다.";
} else {
//user2가 이긴 경우
s = "user2가 이겼습니다.";
}
*/
s = ((user1%3) == ((user2+1)%3))?"user1이 이겼습니다.":"user2가 이겼습니다.";
}
System.out.println(s);
}
}
---------------------------------------
요약
1. 실수 표현->절삭, 반올림, 자릿수 지정
Math.floor()
정수 나눗셈 -> 결과가 절삭 효과
Math.round(a)
Math.round(a * 10) / 10.0
System.out.printf("%d", 정수);
System.out.printf("%f", 실수);
System.out.printf("%.1f", 실수);
System.out.printf("%s", 문자열);
2. if문
- 조건식 작성 (평균 60점 이상, 과락)
- 조건식 작성 (가위, 바위, 보 게임에 대한 수식)
2. switch문
switch(식) {
case 값1: 실행구문; break;
case 값2: 실행구문; break;
default: 실행구문;
}
switch(식) {
case 값1: case 값2: 실행구문; break;
case 값3: 실행구문; break;
default: 실행구문;
}
-------------------------------------------
'JavaSE' 카테고리의 다른 글
07일차_반복문(외부입력, do~while문, break, continue) (1) | 2015.06.21 |
---|---|
06일차_반복문(for, while문) (0) | 2015.06.21 |
04일차_형변환, 제어문if문 (0) | 2015.06.21 |
03일차_연산자, 형변환 (0) | 2015.06.21 |
02일차_이클립스 다운로드 및 설치, 자료형 (0) | 2015.06.21 |