자바에서 조건문이란,,
프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로
조건에 따라 다른 문장이 수행되도록 하는 역할을 하는데요.
쉽게 설명하면 순차적으로 진행해야 하는 코드를
조건을 주어서
임의로 다른 코드가 먼저 실행되게끔 할 수 있다는 말입니다.
조건문에 종류는 두 가지가 있습니다.
if와 switch가 있는데요. 사용은 크게 다를 게 없습니다.
단지 switch에는 case라는 것이 있어,
(조건식의 값) == (case의 값) 일치할 때 수행됩니다.
EX))
이런식으로 사용이 됩니다.
자주 쓰이는 것은 홀수, 짝수를 구분할 때입니다.
이렇게 if 문안에 또 다른 if문을 중첩해서 넣을 수도 있습니다.
switch문 해설과 예시입니다.
해설 그대로 조건식 (num % 5) 의 해당하는 case로 가서 코드를 수행해주는데요.
예를 들어 num이 2이라고 한다면,
2 % 5 == 2 이므로,,,
case 2로 넘어가 team = "2조" 를 수행하고
break로 switch문을 빠져나옵니다.
그럼 조건문의 예제를 살펴봅시다.
조건문 예제
난이도 ★☆☆☆☆
예제 1.
Q : 국어, 영어, 수학 세 과목의 시험 점수를 입력받아 총점과 평균을 구하고,
평균이 60점 이상인 경우에 "합격입니다." 메시지를 출력하고,
60점 이상이 아닌 경우에 "불합격입니다." 메시지를 출력한다.
public static void ex2() {
int kor, eng, math;
int sum=0;
double avg=0;
String msg = "불합격";
System.out.print("국어 점수를 입력하세요 : ");
kor = sc.nextInt();
System.out.print("영어 점수를 입력하세요 : ");
eng = sc.nextInt();
System.out.print("수학 점수를 입력하세요 : ");
math = sc.nextInt();
sum = kor + eng + math;
avg = sum / 3.0;
System.out.print("총점은 " + sum );
System.out.printf(", 평균은 %.2f\n",avg);
if(avg >= 60) {
msg = "합격";
}
System.out.println(msg + "입니다");
}
public static void main(String[] args) {
ex2();
}
난이도 ★★☆☆☆
예제 2.
Q : 키(cm)와, 체중(kg)을 입력하여 BMI 지수를 구하고 BMI 지수에 해당하는 정상, 과체중,
비만, 고도비만 등의 정보를 출력하도록 한다.
BMI 지수의 계산식 -> BMI = 체중(kg) / (키(m) * 키(m))
BMI 지수에 따른 정보
- 18.5 미만 : 저체중
- 18.5 이상 ~ 23 미만 : 정상
- 23 이상 ~ 25 미만 : 과체중
- 25 이상 ~ 30 미만 : 비만
- 30 이상 : 고도비만
public static void ex5() {
double height,weight,bmi;
String bmistr="";
System.out.print("키를 입력하세요(소수): ");
height = sc.nextDouble();
height = height / 100.0; // cm -> m 로 변환.
System.out.print("체중를 입력하세요(소수): ");
weight = sc.nextDouble();
bmi = height / (height*height);
if(bmi <18.5) {
bmistr="저체중";
}else if(bmi >= 18.5 && bmi <23) {
bmistr="정상";
}else if(bmi >= 23 && bmi <25) {
bmistr="과체중";
}else if(bmi >= 25 && bmi <30) {
bmistr="비만";
}else {
bmistr="고도비만";
}
System.out.println("당신의 키는 " +height + ", 몸무게는" + weight +
", BMI 지수는 " + bmistr + " 입니다.");
}
public static void main(String[] args) {
ex5();
}
난이도 ★★★☆☆
예제 3.
Q : 2021년 7월에 한하여 1 ~ 31 일 범위의 일자 값을 입력받고 해당 일자의
요일을 출력하게 한다.
입력값의 범위를 벗어난 경우 "1 ~ 31 사이의 값을 입력하세요." 라는 메시지를 출력한다.
public static void ex3() {
int day;
System.out.print("2021년 7월에 날짜를 입력하세요 : ");
day = sc.nextInt(); sc.nextLine();
if(day >= 1 && day <= 31) {
switch(day % 7) {
case 0:
System.out.println("수요일 입니다."); break;
case 1:
System.out.println("목요일 입니다."); break;
case 2:
System.out.println("금요일 입니다."); break;
case 3:
System.out.println("토요일 입니다."); break;
case 4:
System.out.println("일요일 입니다."); break;
case 5:
System.out.println("월요일 입니다."); break;
case 6:
System.out.println("화요일 입니다.");
}
switch(day % 7) {
// 여러 케이스를 작성.
case 3: case 4:
System.out.println("주말입니다."); break;
default:
System.out.println("주중입니다.");
}
} else {
System.out.println("1 ~ 31 사이의 값을 입력하세요.");
}
}
public static void main(String[] args) {
ex3();
}
난이도 ★★★★★
예제 4.
Q : 시간과 분을 따로 입력받고 추가로 분을 더 입력받아 입력받은 시간에서 추가로 입력한 분의
더한 시간을 출력하도록 한다. 입력 시간은 24시간 형식을 입력받고 출력 시간은 오전/오후
를 구분하는 12시간 형식을 출력하도록 한다.
- 24시간 형식의 12시 30분은 12시간 형식의 오후 12시 30분 이다.
- 24시간 형식의 00시 30분은 12시간 형식의 오전 12시 30분 이다.
- 24시간 형식의 23시 30분은 12시간 형식의 오후 11시 30분 이다.
- 24시간 형식의 11시 30분은 12시간 형식의 오전 11시 30분 이다.
예 1.)
시간 입력 : 23
분 입력 : 50
추가 분 입력 : 20
입력 시간에서 20분을 추가한 시간은 오전 12시 10분입니다.
※ 0 ~ 23 시간의 입력 범위를 넘기면 지정한 범위의 값을 입력하도록 하는 메시지 출력
public static void ex6() {
int hour, min, addmin, time;
String day= "오전";
System.out.print("시간 입력 : ");
hour = sc.nextInt();
if(hour >= 24) {
System.out.println("24 이하로 시간을 입력하세요");
System.exit(0);
}
System.out.print("분 입력 : ");
min = sc.nextInt();
if(min >= 60) {
System.out.println("60 이하로 시간을 입력하세요");
System.exit(0);
}
System.out.print("추가 분 입력 : ");
addmin = sc.nextInt();
time = min + addmin;
if(time >= 60) {
int addhour = time / 60;
time = time % 60;
hour = hour + addhour;
// hour++;
}
if(hour == 12) {
day = "오후";
}else if(hour >=13 && hour < 24){
hour = hour % 12;
day = "오후";
}else if(hour>=0 && hour < 12) {
day = "오전";
}else if(hour==24){
hour = 12;
day = "오전";
}else if(hour >= 25) {
hour = hour % 24;
}
System.out.println("현재시간은 "+ day+ " " + hour + "시 " + time+ "분 입니다.");
}
public static void main(String[] args) {
ex6();
}
이상 java의 조건문을 마치겠습니다.
다음 포스팅에선 java의 반복문에 대해서 다뤄보고자 합니다.
https://healthdevelop.tistory.com/entry/java4
'Java > Java' 카테고리의 다른 글
[Java] 자바 배열의 기초 | 배열 예제 (java로 웹개발하기)(day06) (0) | 2021.07.30 |
---|---|
[Java] 자바 반복문(java for, while,do-while) | 반복문 예제 (java로 웹개발하기)(day05) (1) | 2021.07.29 |
[Java] 자바 반복문(java for, while,do-while) | 반복문 예제 (java로 웹개발하기)(day04) (0) | 2021.07.28 |
[Java] 자바 eclipse Git 연동하기 | 자바 프로젝트 생성 (java로 웹개발하기)(day02) (0) | 2021.07.26 |
[Java] 자바 & 이클립스 설치 | 자바 프로그래밍 기초 | 자바 특징(java로 웹개발하기)(day01) (0) | 2021.07.23 |