본문으로 바로가기
반응형

 

자바에서 조건문이란,,

 

 

 

프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 

조건에 따라 다른 문장이 수행되도록 하는 역할을 하는데요.

 

 

 

쉽게 설명하면 순차적으로 진행해야 하는 코드를 

조건을 주어서

임의로 다른 코드가 먼저 실행되게끔 할 수 있다는 말입니다.

 

 

 

 

 

 

 

조건문에 종류는 두 가지가 있습니다.

 

 

 

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 for, while,do-while) | 반복문 예제 (java로 웹개발하기)(day04)

자바에서 반복문이란,,, 프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을 반복해서 수행하도록 하는 역할을 하는데요. 쉽게 설명해 순차적으로 진행되야 할 코

healthdevelop.tistory.com

 

반응형