본문 바로가기
개발/JAVA

자바 - 제어문 if문, if ~ else 문,

by chansungs 2020. 6. 14.
728x90
반응형

안녕하세요~ 자바의 제어문 중 if문과 if ~ else문에 대해 알아보겠습니다. 

제어문은 프로그램의 흐름을 제어하는 역할을 합니다. if문은 조건이 참(true)일 때만 실행되는 구문으로, 조건이 참일 경우에만 실행하고 거짓(false)인 경우는 실행하지 않습니다. if ~ else문은 if문과 마찬가지로 조건이 참일 때는 if문의 내용을 실행하고, 거짓일 때는 else문의 내용을 실행합니다. 이를 통해 프로그램의 분기를 제어할 수 있습니다. 자바에서 제어문은 프로그래밍에 있어서 매우 중요한 요소이므로, 자세히 공부해보시길 추천드립니다.

 

 

제어문

if문

제어문
 연산자의 경우 하나의 실행문을 작성하는 방법을 제공합니다.
 반면, 제어문은 각각의 실행문의 실행 여부, 반복의 여부를 결정할 수 있는 문법
 제어문은 분기문, 반복문으로 구성됩니다.
 Java에서는 if, switch와 같은 분기문을 
 for, while, do ~ while과 같은 반복문을 제공합니다.

 분기문
 조건식의 결과에 따라서 실행문의 실행 여부를 결정하는 문법

 if문
 조건식이 참일 경우 실행문을 실행하는 분기문 문법
 - if문의 블럭(영역)이 지정되어 있지 않다면
   기본적으로 1개의 실행문을 제어합니다.
 - if문의 블럭(영역)을 지정한다면 해당 영역의 모든 실행문이
   if문의 조건식의 결과에 따라서 제어됩니다.

 사용방법
 if( 조건식 )
 		조건식이 참일 경우 실행할 실행문;

int gender = 1;

if( gender == 1 ) {
	System.out.println("당신은 남성입니다.");
}

if( gender == 2 ) {
	System.out.println("당신은 여성입니다.");
}

if ~ else 문

// if ~ else 문
// if 문을 통해 제어하는 실행문이 양자택일 경우(짝수/홀수)에
// 활용할 수 있는 문법
// if 문의 조건이 거짓일 경우 실행될 제어문을 else 문을 통해 처리합니다.

int number = 17;

// 짝수 판단
if( number % 2 == 0 )
System.out.printf("%d는 짝수 입니다.\n", number);

// 홀수 판단
if( number % 2 == 1 )
System.out.printf("%d는 홀수 입니다.\n", number);

// 사용법
// if( 조건식  )
// 		조건식이 참일 경우 실행될 실행문
// else
// 		조건식이 거짓일 경우 실행될 실행문
if( number % 2 == 0 ) {
System.out.printf("%d는 짝수 입니다.\n", number);
} else {
System.out.printf("%d는 홀수 입니다.\n", number);
}

if ~ else if ~ else 문

// 조건식의 결과가 2개 이상인 경우의 처리 방법
// if ~ else if ~ else 문
// 사용법
// if( 1번째 조건식 )
// 		1번째 조건식이 참일 경우의 실행문;
// else if( 2번째 조건식 )
// 		2번째 조건식이 참일 경우의 실행문;
// ...
// else
// 		모든 조건식이 거짓일 경우의 실행문;

// if ~ else if ~ else 문을 사용하는  경우		
// 하나의 if 블럭을 형성하기 때문에
// 특정 if문의 실행문이 처리되면 해당 if문의 블럭이 종료됩니다.

int age = 32;

if( age >= 0 & age < 20)
System.out.println("당신은 미성년자 입니다.");
else if( age >= 20 && age < 30 )
System.out.println("당신은 20대 입니다.");
else if( age >= 30 && age < 40 )
System.out.println("당신은 30대 입니다.");
else if( age >= 40 && age < 50 )
System.out.println("당신은 40대 입니다.");
else if( age >= 50 && age < 60 )
System.out.println("당신은 50대 입니다.");
else if( age >= 60 && age < 70 )
System.out.println("당신은 60대 입니다.");

키보드 입력(기본입력)을 통한 제어문 활용

// 1. import 구문 작성
import java.util.Scanner;

public class Control_Statement_IF_04 {
	public static void main(String[] args) {
		// 키보드 입력(기본입력)을 통한 제어문 활용
		
		// 2. 키보드 입력을 위한 변수의 선언과 초기화
		Scanner in = new Scanner(System.in);
		
		// 3. 기본 입력 변수를 통한 데이터 입력
		System.out.print("정수 입력하세요 : ");
		// Scanner 클래스의 nextInt 메소드는 입력 소스로부터
		// 정수(int)를 읽어옵니다.
		int num = in.nextInt();		
		System.out.println("입력된 정수는 " + num + " 입니다.");
		
		if( num % 2 == 0 )
			System.out.printf("입력된 정수는 '짝수' 입니다.\n");
		else
			System.out.printf("입력된 정수는 '홀수' 입니다.\n");

	}
}

키보드 입력의 if문 활용

import java.util.Scanner;

public class Control_Statement_IF_05 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		// 사용자로부터 3과목의 성적을 입력받아
		// 총점, 평균, 등급을 출력하세요.
		// (등급은 A ~ F)
		
		// 1. 입력
		// - 변수 선언
		int s1, s2, s3;
		// - 입력과정 수행
		System.out.print("국어 성적을 입력하세요 : ");
		s1 = in.nextInt();
		System.out.print("영어 성적을 입력하세요 : ");
		s2 = in.nextInt();
		System.out.print("수학 성적을 입력하세요 : ");
		s3 = in.nextInt();
		
		// 2. 처리
		// - 변수 선언
		int tot;
		double avg;
		char grade;
		// - 처리 과정 수행
		// 총점
		tot = s1 + s2 + s3;
		// 평균
		avg = tot / 3.0;
		// 등급
		if( avg < 0 || avg > 100 )
			grade = '?';
		else if( avg >= 90 )
			grade = 'A';
		else if( avg >= 80 )
			grade = 'B';
		else if( avg >= 70 )
			grade = 'C';
		else if( avg >= 60 )
			grade = 'D';
		else
			grade = 'F';

		// 3. 출력
		System.out.printf("입력된 성적의 총점은 %d 점, 평균은 %.2f 점 입니다.\n", tot, avg);
		
		if( grade != '?' )
			System.out.printf("입력된 성적의 등급은 '%c' 입니다.\n", grade);
		else
			System.out.println("입력된 성적에 오류가 있습니다.");

	}
}

if문 활용 예제(문제)

import java.util.Scanner;
public class Control_Statement_IF_05_EX {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		// 사용자에게 월에 해당되는 정보를 입력받으세요.
		// 입력받은 월의 일수를 출력하세요.
		// EX) 1 ~ 12 사이의 정수를 입력하세요 : 5
		// 5월 달은 '31'일 까지 있습니다.
		
		// 1. 입력
		// - 변수 선언
		int month;
		// - 입력 과정 수행
		System.out.print("1 ~ 12 사이의 정수를 입력하세요 : ");
		month = in.nextInt();
		
		// 2. 처리
		// - 변수 선언
		int day;
		// - 처리 과정 수행
		if( month < 1 || month > 12 )
			day = -1;
		else if( month == 1 || month == 3 || month == 5 || 
				month == 7 || month == 8 || month == 10 || month == 12 )
			day = 31;
		else if( month == 2 )
			day = 28;
		else
			day = 30;
		
		// 3. 출력
		if( day != -1 )
			System.out.printf("%d월 달은 '%d'일 까지 있습니다.\n", month, day);
		else
			System.out.printf("1 ~ 12 사이의 값을 입력하세요 (%d)\n", month);

	}

}
728x90
반응형