제어문
- 프로그램 실행흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것
제어문의 종류
조건문
- 주어진 조건을 비교하여 조건에 만족할 경우 지정된 명령문을 실행하고 만족하지 않을 경우 다음 단계의 명령을 실행하는 구문
단순if
단순 if문의 구조
- 조건식의 결과값은 boolean 형태여야 한다.
if(조건식){
// 조건식이 true이면 실행시킬 코드
실행코드;
}
단순 if문 예제 1)
- 정수(나이)를 입력받아 20세 이상이라면 "성인입니다"를 출력해보자
package 복습Ex20220318;
import java.util.Scanner;
public class ex01if문 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("나이를 입력해주세요 >> ");
int age = sc.nextInt();
if (age >= 20) {
System.out.println("성인입니다!");
}
}
}
단순 if문 예제 2)
- int 타입의 변수 num을 선언하고 키보드로 값을 입력받는다. 만약 num이 3의 배수이면서 5의 배수라면 "3과 5의 배수입니다" 를 출력해보자
-> 3과 5의 배수라면 3과 5로 나눴을 때 각각 나머지가 0 이어야한다
package 복습Ex20220318;
import java.util.Scanner;
public class ex02if예제 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 >> ");
int num = sc.nextInt();
if (num%3 == 0 && num%5 == 0) {
System.out.println("3과 5의 배수입니다.");
}
}
}
if else
if else 문의 구조
- 조건식의 결과값은 boolean 형태여야 한다.
if(조건식){
// 조건식이 true이면 실행시킬 코드
실행코드1;
} else {
// 조건식이 false이면 실행시킬 코드
실행코드2;
}
if else문 예제 1)
- 입력한 숫자가 1이면 "예", 숫자가 0이면 "아니요"를 출력해보자
package 조건문;
import java.util.Scanner;
public class ex03ifelse문 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하세요 >> ");
int num = sc.nextInt();
if (num == 1 ) {
System.out.println("예");
} else {
System.out.println("아니요");
}
}
}
if else문 예제 2)
- 정수를 입력받아서 홀수인지 짝수인지 판별해보자
- 정수를 2로 나눴을 때 나머지가 0이면 짝수, 1이면 홀수이다
package 조건문;
import java.util.Scanner;
public class ex04ifelse예제 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 >> ");
int num = sc.nextInt();
if (num%2 == 0) {
System.out.println("짝수입니다");
} else {
System.out.println("홀수입니다");
}
}
}
if else문 예제 3)
- 상품의 갯수가 10개 이하라면, 상품의 갯수 * 10000/ 상품의 갯수가 11개 이상이라면, 상품의갯수*10000 에 10프로 할인된 90프로의 가격만 지불하면 되기 때문에, 0.9를 곱해준다.
- 0.9를 곱하면, 정수형이 아닌 실수형으로 변하기 때문에 int로 형변환을 시켜주자
package 조건문;
import java.util.Scanner;
public class ex05ifelse예제 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("사려는 상품의 갯수를 입력하세요 ");
int cnt = sc.nextInt();
int price = 0;
if (cnt < 11 ) {
price = 10000 * cnt;
} else {
price = (int)((10000*cnt)*0.9);
}
System.out.println("가격은 "+price+"원 입니다");
}
}
다중 if
다중 if문의 구조
- 다수의 조건문을 차례대로 비교하여 실행
- 조건식의 결과값은 boolean 형태여야 한다.
if(조건식){
// 조건식1이 true이면 실행시킬 코드
실행코드1;
} else if{
// 조건식2이 true이면 실행시킬 코드
실행코드2;
} else {
// 위 조건에 모두 해당하지 않을경우 실행시킬 코드
실행코드3;
}
다중 if문 예제 1)
80점 이상 90점 미만의 조건을 totalScore < 90 && totalScore <= 80로 걸지 않아도 되는 이유
- 코드는 위에서부터 차례대로 실행된다. 그러므로 만약 totalScore > 90 이라면 위에 작성한 코드가 실행되기 때문에 totalScore >= 80 조건만 걸어주어도 된다.
package 조건문;
import java.util.Scanner;
public class ex06다중if문 {
public static void main(String[] args) {
System.out.print("점수 입력 : ");
Scanner sc = new Scanner(System.in);
int totalScore = sc.nextInt();
if(totalScore >= 90) {
System.out.println("A학점입니다");
} else if (totalScore >= 80) {
System.out.println("B학점입니다");
} else if (totalScore >= 70) {
System.out.println("C학점입니다");
} else {
System.out.println("D학점입니다");
}
}
}
다중 if문 예제 2)
package 조건문;
import java.util.Scanner;
public class ex07다중if문예제 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int totalScore = 0;
System.out.print("소프트웨어 설계 : ");
int score1 =sc.nextInt();
System.out.print("소프트웨어 개발 : ");
int score2 =sc.nextInt();
System.out.print("데이터베이스 구축 : ");
int score3 =sc.nextInt();
System.out.print("프로그래밍 언어 활용 : ");
int score4 =sc.nextInt();
System.out.print("정보시스템 구축 관리 : ");
int score5 =sc.nextInt();
totalScore = score1 + score2 + score3 + score4 + score5;
if (totalScore >= 60) {
if(score1 > 7 && score2 > 7 && score3 > 7 && score4 > 7 && score5 > 7) {
System.out.println("합격입니다.");
} else {
System.out.println("불합격입니다.");
}
} else {
System.out.println("불합격입니다.");
}
}
}
단순 if문 여러개 대신, 다중 if문을 사용하는 이유
- 다중 if문은 조건을 한번 만족하면 바로 조건문 실행 후 빠져나오지만, 단순 if문 여러개는 if문이 만족되어도 그 다음 if문으로 넘어간다.
switch- case
switch-case문의 구조
- 딱 떨어지는 값, 변수가 와야한다
- 콜론으로 구분하고, break를 걸어주어야 한다 (조건에 만족하면 case문을 빠져나오기 위해서)
- case 1, 2 둘다 만족하지 않을 경우 default 실행 (if 문 else 역할)
switch(변수) {
case 값1 :
실행문장 1;
break;
case 값2 :
실행문장 2;
break;
default :
break;
}
switch- case문 예제 )
- 월을 입력받은 후 월에 따른 계절을 출력시켜보자
- 봄 : 3, 4, 5 / 여름 : 6 , 7 ,8 / 가을 : 9, 10, 11 / 겨울 12, 1, 2
방법 1
package 조건문;
import java.util.Scanner;
public class ex08switch_case예제 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("몇 월인가요? >> ");
int month = sc.nextInt();
switch(month) {
case 3, 4, 5 :
System.out.println("봄 입니다.");
break;
case 6, 7, 8 :
System.out.println("여름 입니다.");
break;
case 9, 10, 11 :
System.out.println("가을 입니다.");
break;
case 12, 1, 2 :
System.out.println("봄 입니다.");
break;
default :
System.out.println("월이 아닙니다");
break;
}
}
}
방법 2
- 입력받은 월을 3으로 나누었을 때
봄인 3, 4, 5 는 몫이 1
여름인 6, 7, 8 은 몫이 2
가을인 9, 10 ,11 은 몫이 3 이므로
switch의 조건을 month/3 으로 걸어주자
switch (month/3) {
case 1:
System.out.println("봄 입니다.");
break;
case 2:
System.out.println("여름 입니다.");
break;
case 3:
System.out.println("가을 입니다.");
break;
default:
System.out.println("겨울 입니다.");
break;
}
'Java > Java' 카테고리의 다른 글
[Java] while문 예제 로그인 프로그램/계산기 프로그램/ 플러스게임 (0) | 2022.08.02 |
---|---|
[Java] 반복문 while/do-while (0) | 2022.07.28 |
[Java] 조건문 응용 실습 - 자판기 프로그램 if/ switch-case (0) | 2022.07.24 |
[Java] 입출력문과 연산자 (0) | 2022.07.23 |
[Java] java 자료형 (0) | 2022.07.23 |