프로그램 흐름을 제어할 수 있는 제어문 종류는 두가지(조건문/반복문) 이 있다.
#조건문
조건을 제시하고 그 조건이 맞냐 틀리냐 선택하거나 조건 중에서 하나를 선택 하는 것
● if문
1. 조건문의 정의
조건문이란, 조건을 판단하여 조건에 맞게 상황을 수행하는데 쓰이는 문장이다.
조건식은 true 아니면 false 문장의 결과만 나온다.(boolean형)
2. if문 사용방법
if(조건식) {
조건식이 true인 경우 실행할 문장;
}
3. if 문 특징
★ if 문에서 중괄호 ({})는 반드시 사용해야 하는 것은 아니다!!!
if 중괄호의 경우 두 문장을 묶어주는 역할이다. 한줄만 사용할 경우 사용하지 않아도 되므로 필수적인 부분은 아니다.
조건식이 만족하든 만족하지 않든 다음문장에 ;(세미콜론) 을 만나는 부분까지 이다.
true 일때에는 앞에 ;(세미콜론) 확인 / false일 때는 뒤에 있는 ;(세미콜론) 확인
● 논리 연산자 / 비교 연산자를 조건문에서 사용가능하다.
● true면 실행 false면 밖으로 빠져나온다. 재실행 하지 않는다.!
3. if문 예시
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("나이를 입력하세요.");
int age = sc.nextInt();
if(age >= 19){
System.out.println("성인입니다.");
}
System.out.println("프로그램을 종료합니다.");
}
● if - esle문
1. if - esle문 사용 방법
if(조건식) {
조건식이 true인 경우 실행 할 문장;
} esle {
조건식이 false인 경우 실행 할 문장;
}
★ 해당 부분 중괄호 역시 필수적인 부분이 아니다!
2. if - else문 예시
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("나이를 입력하세요.");
int age = sc.nextInt();
if(age >= 19) System.out.println("성인입니다.");
else System.out.println("미성년자입니다.");
}
#if - esle if - else 문
1. if - esle if - else 문 사용 방법
if (조건식1) {
조건식1이 true인 경우 실행 할 문장;
} else if (조건식2) {
조건식2이 true인 경우 실행 할 문장;
} esle {
조건식 1,2 모두가 false인 경우 실행 할 문장;
}
★ else if는 여러개 써도 상관없다.
★ esle 문은 무조건 쓰는 건 아니다. (필요에 따라서)
2. if - else if - else 문 예시
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("나이를 입력하세요.");
int age = sc.nextInt();
if(age >= 19) {
System.out.println("성인입니다.");
}else if(age >= 14){
System.out.println("청소년입니다.");
}else if(age >= 7){
System.out.println("어린이입니다.");
}else{
System.out.println("유아입니다.");
}
}
#상위 배운 내용들을 정리하는 문제를 풀어보자!
-
문제
이름, 자바, HTML, CSS, 자바스크립트 점수를 입력받아 아래와 같이 출력하는 프로그램을 작성
(단, 학점은 평균을 기준으로 90점이상 A학점, 80점이상 B학점, 70점이상 C학점, 60점이상 D 학점, 나머지 F 학점 입니다)
입력)
이름을 입력하세요. 홍길동
자바점수를 입력하세요. 100
HTM점수를 입력하세요. 80
CSS점수를 입력하세요. 60
자바스크립트 점수를 입력하세요. 70
결과)
홍길동님의 성적입니다.
자바 : 100점
HTML : 80점
CSS : 60점
자바스크립트 : 70점
총점 : XX점
평균 : XX점
학점 : X
-
해설 ( 많은 방법이 있다 해당 방법은 여태 배운걸 토대로 기초하여 만드는 것임 )
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요.");
String name = sc.nextLine();
System.out.println("자바 점수를 입력하세요.");
int java1 = sc.nextInt();
System.out.println("HTML 점수를 입력하세요.");
int html1 = sc.nextInt();
System.out.println("CSS 점수를 입력하세요.");
int css1 = sc.nextInt();
System.out.println("자바스크립트 점수를 입력하세요.");
int js1 = sc.nextInt();
int tot = java1 + html1 + css1 + js1;
int avg = tot / 4;
System.out.println(name + "님의 성적입니다.");
System.out.println("자바 : " + java1 + "점");
System.out.println("HTML : " + html1 + "점");
System.out.println("CSS : " + css1 + "점");
System.out.println("자바스크립트 : " + js1 + "점");
System.out.println("총점 : " + tot + "점");
System.out.println("평균 : " + avg + "점");
if (avg >= 90) {
System.out.println("학점 : A");
}else if(avg >= 80){
System.out.println("학점 : B");
}else if(avg >= 70){
System.out.println("학점 : C");
}else if(avg >= 60){
System.out.println("학점 : D");
}else{
System.out.println("학점 : F");
}
}
● switch 문
1. switch 문 사용방법
switch(변수) {
case 값 1 :
변수가 값 1일 경우 실행할 문장 ;
break;
case 값 2 :
변수가 값 2일 경우 실행할 문장 ;
break;
default:
변수가 case 값과 일치되지 않을 경우 실행할 문장;
}
2. switch 문 특징
- ()괄호 안에는 if문과는 다르게 범위가 아닌 변수를 넣어준다. 변수값이 일치하는 것은 case 에서 찾는다.
- 어떠한 변수랑 일치하게 되면 변수를 실행하고 break를 만나면 빠져나간다. (default 맨 마지막 뒤 break는 생략가능)
- break 도 if 의 중괄호와 같이 필수적인 요소는 아니며 필요에 의해 사용된다.
break가 없는경우는 case가 해당되는 부분부터 하위단의 결과값이 모두 실행된다. 그렇다고 무조건 break 를 실행하는건 아니다.
하위 예시의 경우 case 10: case9: 는 결과값이 같기 때문에 겹쳐 쓰는 것이 가능.
★ 차이점)))) if 문 같은 경우는 범위를 주는 것이고 switch는 일치하는것을 찾는것이다.
- if / switch와 같이 쓸 수 있는 입장일 경우, switch를 쓰는 것이 코딩할 때 편하고 낫다 ( if문보다 약 6배정도 빠르다함 )
3. switch 문 예시 (이전 if문 문제를 다시 불러와 switch로 바꿔본다!)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요.");
String name = sc.nextLine();
System.out.println("자바 점수를 입력하세요.");
int java1 = sc.nextInt();
System.out.println("HTML 점수를 입력하세요.");
int html1 = sc.nextInt();
System.out.println("CSS 점수를 입력하세요.");
int css1 = sc.nextInt();
System.out.println("자바스크립트 점수를 입력하세요.");
int js1 = sc.nextInt();
int tot = java1 + html1 + css1 + js1;
int avg = tot / 4;
System.out.println(name + "님의 성적입니다.");
System.out.println("자바 : " + java1 + "점");
System.out.println("HTML : " + html1 + "점");
System.out.println("CSS : " + css1 + "점");
System.out.println("자바스크립트 : " + js1 + "점");
System.out.println("총점 : " + tot + "점");
System.out.println("평균 : " + avg + "점");
switch (avg/10){
case 10: case 9:
System.out.println("학점 : A");
case 8:
System.out.println("학점 : B");
case 7:
System.out.println("학점 : C");
case 6:
System.out.println("학점 : D");
default:
System.out.println("학점 : F");
}
}
상위 if문과 결과값 동일하기 때문에 생략!
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 8. 가위바위보 게임(Random) (0) | 2020.06.16 |
---|---|
[JAVA] 7. 반복문(while문 / for문) (0) | 2020.06.13 |
[JAVA] 5. Scanner (0) | 2020.06.12 |
[JAVA] 4. 형변환(Casting) (0) | 2020.06.12 |
[JAVA] 3. 연산자 및 연산자 우선순위 (0) | 2020.06.12 |