본문 바로가기
Back-End/Java

[Java] 조건문 if-else문, if-else if문

by 찐코딩 2021. 8. 8.

 if~else문 - 조건문(분기문)

  - 조건식이 참이면 조건식이 참인 경우 실행문을 실행하고 if~else 블럭을 빠져 나옴.
  - 조건식이 거짓이면 조건식이 거짓인 경우 실행문을 실행하고 if~else 블럭을 빠져 나옴.

 

  형식) 

if(조건식) {
	조건식이 참인 경우 실행 문장;
}else {
	조건식이 거짓인 경우 실행 문장;
}

예문)

[문제] 키보드로부터 입력을 받은 정수값을 5로 나누어서 0으로 떨어지면 "이 정수는 5로 나누어집니다." 라고 출력을 하고, 그렇지 않으면 "이 정수는 5로 나누어지지 않습니다." 라고 화면에 출력하시오.
 * 단, 음수값이 입력이 되면, "음수 값이 입력 되었습니다." 라고 출력하시오.

 

import javax.swing.JOptionPane;  //JOptionPane클래스를 사용하기 위해 추가

public class Ex02 {

	public static void main(String[] args) {
		//1. 키보드로부터 정수를 입력받자.
		int num1=
			Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하시오"));  //입력받은 값 정수형으로 변환
		
		//2. 입력받은 정수가 양수인지 혹은 음수인지 판별
		if(num1>0) {    //입력받은 정수가 양수인 경우
			if(num1%5==0) {
				System.out.println("이 정수는 5로 나누어집니다.");
			}else {
				System.out.println("이 정수는 5로 나누어지지 않습니다.");
			}
		}else {    //입력받은 값이 음수인 경우
			System.out.println("음수 값이 입력되었습니다.");
		}
		
	}

}

 

입력받은 정수가 양수인지, 음수인지부터 판별하였고,

양수인 경우, 또 다른  if문을 포함시켜 5로 나누어 떨어지는지 판별하였다.

이를 중첩 if문이라 함.

 

실행

 


번외)

*Scanner 클래스를 이용하여 키보드로 값 입력받기

[문제] 키보드로 입력 받은 숫자가 홀수인지 짝수인지 출력해보시오. - scanner 클래스를 이용해보기.

/*
 * [문제] 키보드로 입력 받은 숫자가 홀수인지 짝수인지 출력해보시오.
 */

import java.util.Scanner;  		//키보드로 입력받기 위한 준비 작업, import을 시켜줌

public class Ex05 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);		// system.in은 표준입력장치 (ex:키보드)
        
		System.out.print("정수를 입력하세요");
		int num=sc.nextInt();				//화면을 통해 입력받은 숫자를 num에 저장
			
		if(num%2==0) {
			System.out.println(num + "은 짝수입니다.");
		}else {
			System.out.println(num + "은 홀수입니다.");
		}
        
		//스캐너를 사용하면 종료후에는 닫아주는 게 좋음(데이터가 남아있을 수 있기 때문에)
		sc.close();
	}

}

 

sc.nextInt ==> 정수형 입력

sc.next ==> String형 입력

 


다중 if~else문 - 분기문(조건문)

  -if-else문은 두 가지 경우 중 하나가 수행되는 구조,

   처리해야할 경우의 수가 셋 이상인 경우에 사용하는 구조식

 - 여러개의 조건문 중에 맞는 조건에 해당하는 문장을 실행하는 구조

 
형식)

if(조건식1) {
  조건식1이 참인 경우 실행문;
}else {
  if(조건식2) {
		조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
  	}else {
  		if(조건식3) {
  				조건식1, 조건식2가 거짓이고, 조건식3이 참인 경우 실행문;
  			}else {
  				조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
  			}
  		}
  	}

이걸 조금 더 간결하게 정리해보자면,

if(조건식1) {
 	조건식1이 참인 경우 실행문;
}else if(조건식2) {
 	조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
}else if(조건식3) {
 	조건식1, 조건식2가 거짓이고 조건식3이 참인 경우 실행문;
}else {
 	조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
}

예제01)

import java.util.Scanner;  //scanner 클래스 사용하기 위해 추가

public class Ex06 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.print("숫자를 입력하세요."); 
		int num=sc.nextInt(); //화면을 통해 입력받은 값 num에 저장
		
		if(num==1) {
			System.out.println("입력받은 숫자는 1입니다.");
		}else if(num==2) {
			System.out.println("입력받은 숫자는 2입니다.");
		}else if(num==3) {
			System.out.println("입력받은 숫자는 3입니다.");
		}else {
			System.out.println("입력받은 숫자는 1~3 이외의 숫자입니다.");
		}
	}
}

 

 

예제02)

주사위를 굴려서 임의의 숫자를 받아서 처리해보자.

 

public class Ex09 {

	public static void main(String[] args) {
		// 주사위를 굴려서 임의의 숫자를 받아서 처리해보자.
		int num=(int)(Math.random()*6)+1;  //(int)를 해주는 이유는 형변환
        
		if(num==1) {
			System.out.println("주사위의 1번이 나왔습니다.");
		}else if(num==2) {
			System.out.println("주사위의 2번이 나왔습니다.");
		}else if(num==3) {
			System.out.println("주사위의 3번이 나왔습니다.");
		}else if(num==4) {
			System.out.println("주사위의 4번이 나왔습니다.");
		}else if(num==5) {
			System.out.println("주사위의 5번이 나왔습니다.");
		}else {
			System.out.println("주사위의 6번이 나왔습니다.");
		}
	}
}

 

Math.random()

Math.random() 함수는 double 형으로 0.0이상 1.0 미만 사이의 값을 반환하는 함수

- 난수를 만들고 싶을때 자주 이용되는 함수

 

==> 더블형으로 출력되기 떄문에 int형으로 변환하는 작업이 이뤄짐

==> 1부터 랜덤으로 뽑고 싶으니까 +1해준다.

(만약 0부터 5까지 구하고싶으면 +1 하지 않는다)

 

'Back-End > Java' 카테고리의 다른 글

[Java] 반복문 while, do while  (0) 2021.08.08
[Java] 조건문 switch~case문  (0) 2021.08.08
[Java] 조건문 if문  (0) 2021.08.08
[Java] 이클립스에서 명령행 인자 입력방법  (0) 2021.08.08
[Java] 연산자(operator)  (0) 2021.08.04

댓글