프로그램의 진행은 순차적으로 진행된다.
하지만 이 순차적 흐름을 바꿀 때, "제어문"이라는 걸 이용한다.
<조건문>
조건식을 통해 참이냐 거짓이냐를 판단해서 해당 조건이 만족하는 경우 그에 해당하는 실행문을 실행한다.
(삼항 연산자도 조건문)
조건문은 크게 if 문이랑 switch문으로 나뉜다.
if문의 종류 3가지
1) 단독 if문
2) if else 문
3) if else if 문
조건식의 결과 값이 true(참)이면 중괄호({}) 안의 코드를 실행한다.
조건식의 결과 값이 false(거짓)이면 코드를 무시하고 넘어간다.
1) 단독 if문
package com.kh.control01.condition;
import java.util.Scanner;
public class A_If {
public void method1() {
// 키보드로 정수를 입력 , 정수가 양수이면서 짝수일때만 "짝수다"
// 짝수가 아니면 "홀수다" 를 출력
// 양수가 아니면 "양수만 입력해주세요." 를 출력
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 한 개 입력하세요 : ");
int num = sc.nextInt();
if(num < 0 ) {
System.out.println("양수만 입력해주세요");
return; // 프로그램종료
}
if(num>0 && num%2==0) {
System.out.println("짝수다");
}
if(num % 2 == 1) {
System.out.println("홀수다");
}
}
키보드로 정수를 입력받아서, 정수가 양수이면서 짝수 일 때만 "짝수다"라고 출력을 하고, 짝수가 아니면 "홀수다"를 출력한다. 양수가 아니면 " 양수만 입력해 주세요를 출력한다.
단독 if 문
if(조건식){
.. 실행할 코드.. ;
}
2) if else 문 , if else if 문
if - else 문
if(조건식) {
.. 실행코드 1.. ;
} else {
.. 실행코드 2.. ;
}
조건식의 결과가 true인 경우 실행코드 1 수행한다.
조건식의 결과가 false인 경우 실행코드 2 수행한다.
if-else-if
if(조건식 1) {
.. 실행코드 1..
} else if (조건식 2) {
.. 실행코드 2..
} else {
.. 실행코드 3..
}
조건식 1의 결과가 true 인 경우 실행코드1를 수행하고 if-else-if 문을 빠져나간다.
하지만 조건식1의 결과가 false 인 경우 실행코드 2를 수행한다.
조건식 2의 결과가 flase 인 경우 실행코드 3을 수행한다,
조건식 1, 조건식 2 모두 flase 이면 else 다음 코드가를 실행한다.
package com.kh.control01.condition;
import java.util.Scanner;
public class B_Else {
//if - else 문
//if(조건식) {
// .. 실행코드1 .. ;
// }else {
// .. 실행코드2 .. ;
// }
// 조건식의 결과가 true인 경우 실행코드1 수행
// 조건식의 결과가 false인 경우 실행코드2 수행
// if-else-if
// if(조건식1) {
// .. 실행코드1 ..
// }else if (조건식2) {
// .. 실행코드2 ..
// } else {
// .. 실행코드 3 ..
//}
//조건식1의 결과가 true 인 경우 실행코드1를 수행하고 if-else-if 문을 빠져나감
//하지만 조건식1의 결과가 false 인 경우 실행코드 2를 수행
//조건식2의 결과가 flase 인 경우 실행코드3을 수행
//조건식1, 조건식2 모두 flase 이면 else 다음 코드가 실행
public void method1() {
Scanner sc = new Scanner(System.in);
System.out.println(" 정수 : ");
int num = sc.nextInt();
if (num < 0) {
System.out.println("양수만 입력해 주세요");
}else if (num % 2 ==0) {
System.out.println("짝수다");
}else
System.out.println("홀수다");
}
public void method2( ) {
Scanner sc = new Scanner(System.in);
System.out.println("1. 입력");
System.out.println("2. 수정");
System.out.println("3. 조회");
System.out.println("4. 삭제");
System.out.println("7. 종료");
System.out.println("메뉴를 입력하세요 : ");
int num = sc.nextInt();
if(num == 1) {
System.out.println("입력 메뉴 입니다");
}else if (num == 2) {
System.out.println("수정 메뉴 입니다");
}else if (num == 3) {
System.out.println("조회 메뉴 입니다");
}else if (num == 4) {
System.out.println("삭제 메뉴 입니다");
}else
System.out.println("프로그램이 종료됩니다"); //실행되는것이 없어서 return; 안해도됨
}
}
3) 연습문제
public void method4() {
// 중간고사, 기말고사 , 과제점수, 출석회수를 입력하고
// pass or fail 을 출력하세요
// 평가비율은 중간고사 20% 기말고사 30% 과제30% 출석 100%
// 출석비율은 출석회수는 총 강의 회수 20회 중에서 출석한 날만 따진값으로 계산하세요
// 70점 이상일 경우 pass, 70점 미만이거나 전체강의에 30% 결석시 fail 을 출력
Scanner sc = new Scanner(System.in);
System.out.println("중간고사 : ");
int num1 = sc.nextInt();
System.out.println("기말고사 : ");
int num2 = sc.nextInt();
System.out.println("과제점수 : ");
int num3 = sc.nextInt();
System.out.println("출석횟수 : ");
int num4 = sc.nextInt();
double result = (num1 * 0.2 + num2 * 0.3 + num3 * 0.3 + num4);
if (result >= 70 && num4 > 20 * 0.7) {
System.out.println("pass");
} else {
if (result >= 70) {
System.out.println("fail [출석횟수부족] (" + num4 + "/20");
} else if (num4 > 20 * 0.7) {// 점수 미달 / 출석 통과
System.out.println("fail [점수 미달] (총점 " + result + ")");
} else {
System.out.println("fail [출석 횟수 부족] (" + num4 + "/20)");
System.out.println("fail [점수 미달] (총점 " + result + ")");
}
}
}
'이공계전문기술연수 > Java' 카테고리의 다른 글
<이공계전문기술연수> 11. Java 반복문: for문 // Math.random() (0) | 2019.08.13 |
---|---|
<이공계전문기술연수> 10. Java 조건문 switch문 (0) | 2019.08.11 |
< 이공계전문기술연수> 8. Java 연산자 / 증감연산자/ 삼항연산자 (0) | 2019.08.07 |
< 이공계전문기술연수> 7. Java 변수와 시스템 입출력 / Scanner (0) | 2019.08.07 |
< 이공계전문기술연수> 6. Java 변수(3) 타입변환 (0) | 2019.08.07 |