06
10
728x90

if문

조건식의 결과에 따라 중괄호 { } 블록을 실행할지 여부를 결정할 때 사용

조건식에는 true 또는 false값을 산출할 수 있는 연산식 또는 boolean 변수가 온다.

조건식이 true이면 블록을 실행하고, false이면 블록을 실행하지 않는다.

조건식이 true가 되었을때 실행문이 하나인 경우 중괄호 { }를 해주지 않아도 되지만, 코드가 명확하게 보이기 위해 중괄호 { } 를 해주는 것이 좋음

 

예제)

package sec02.exam01_if;

public class IfExample 
{
	public static void main(String[] args) 
	{
		int score = 93;
		
		if( score >= 90) //score가 90과 같거나 크면
		{
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("A입니다.");
		}
		if( score>=60 && score<90 ) //score가 90보다 작고 80과 같거나 크면
		{
			System.out.println("점수가 60보다 큽니다.");
			System.out.println("B입니다.");
		}
		if( score <60) //score가 80보다 작으면
		{
			System.out.println("점수가 60보다 작습니다.");
			System.out.println("C입니다.");
		}
	}
}

출력 결과


if-else 문

조건식의 결과에 따라 실행 블록을 선택한다.

 

예제)

package sec02.exam01_if;

public class IfElseExample 
{

	public static void main(String[] args) 
	{
		int score = 85;
		
		if(score>=90) //score가 90과 같거나 크면
		{
			System.out.println("점수가 90보다 큽니다.");
		}
		else //그 외의 경우
		{
			System.out.println("점수가 90보다 작습니다.");
		}
	}
}

출력 결과


if-else if -else 문

복수의 조건식을 두어 조건식을 만족하는 블록만 실행된다.

 

예제)

package sec02.exam01_if;

public class IfElseIfElseExample 
{
	public static void main(String[] args) 
	{
		int score = 75;
		if(score>=90)
		{
			System.out.println("점수가 100~90입니다.");
			System.out.println("등급이 A 입니다.");
		}
		else if(score>=80)
		{
			System.out.println("점수가 90~80입니다.");
			System.out.println("등급이 B 입니다.");
		}
		else if(score>=70)
		{
			System.out.println("점수가 80~70입니다.");
			System.out.println("등급이 C 입니다.");
		}
		else if(score>=60)
		{
			System.out.println("점수가 70~60입니다.");
			System.out.println("등급이 D 입니다.");
		}
		else
		{
			System.out.println("점수가 60미만 입니다.");
			System.out.println("등급이 E 입니다.");
		}
	}
}

출력 결과

package sec02.exam01_if;

public class IfDiceExaple 
{

	public static void main(String[] args) 
	{
		//Math.random : 0<=Math.random()<1 의 실수가 랜덤으로 나옴
		int num = (int)(Math.random()*6) + 1;
		
		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번이 나왔습니다.");
		}
	}
}

랜덤값이기 때문에 매번 결과가 다르게 나옴

출력결과 1
출력 결과 2


중첩 if문

예제)

package sec02.exam01_if;

public class IfNestedExample 
{
	public static void main(String[] args) 
	{
		//81에서 100사이의 임의의 정수 반환
		int score = (int)(Math.random()*20) + 81;
		//0<= Math.random()<1
		//Math.random()값에 *20을 하면
		//0<= Math.random < 20 이 됨
		//정수로 변환하면 0<= 1,2,3,4,5, ... , 19 < 20 이 되는데
		//이값들에 81을 더하면 81<=82,83,...,100<101이 됨.
		//따라서 81에서 100사이의 임의의 정수가 나옴
		System.out.println("점수 : " + score);
		
		String grade; //문자열을 저장할 변수 선언
		
		if(score>=90) //score가 90이상이면
		{
			if(score>=95) //score가 95이상이면
			{
				grade = "A+";
			}
			else //score가 95이상이 아니면
			{
				grade = "A";
			}
		}
		else //score가 90이상이 아니면
		{
			if(score>=85) //score가 85이상이면
			{
				grade = "B+";
			}
			else //score가 85이상이 아니면
			{
				grade = "B";
			}
		}
		System.out.println("학점: " + grade);
	}
}

랜덤한 값을 뽑기 때문에 실행마다 결과값이 바뀌게됨

출력 결과 1
출력 결과 2


switch문

변수나 연산식의 값에 따라 실행문을 선택할 때 사용

 

예제)

package sec02.exam02_switch;

public class SwitchExample 
{
	public static void main(String[] args) 
	{
		//1부터 6사이의 임의의 정수를 반환
		int num = (int)(Math.random()*6) + 1;

		switch(num)
		{
			case 1: //1인경우
				System.out.println("1번이 나왔습니다.");
				break; //1인경우에 위의 글을 출력하고 전체 switch를 빠져나감
			case 2: //2인경우
				System.out.println("2번이 나왔습니다.");
				break; //2인경우에 위의 글을 출력하고 전체 switch를 빠져나감
			case 3: //3인경우
				System.out.println("3번이 나왔습니다.");
				break; //3인경우에 위의 글을 출력하고 전체 switch를 빠져나감
			case 4: //4인경우
				System.out.println("4번이 나왔습니다.");
				break; //4인경우에 위의 글을 출력하고 전체 switch를 빠져나감
			case 5: //5인경우
				System.out.println("5번이 나왔습니다.");
				break; //5인경우에 위의 글을 출력하고 전체 switch를 빠져나감
			case 6: //6인경우
				System.out.println("6번이 나왔습니다.");
				break; //6인경우에 위의 글을 출력하고 전체 switch를 빠져나감
		}
	}
}

랜덤한 값을 뽑기 때문에 실행마다 결과값이 바뀌게됨

출력 결과1
출력 결과2

package sec02.exam02_switch;

public class SwitchNoBreakCaseExample 
{
	public static void main(String[] args) 
	{
		int time = (int)(Math.random()*4) + 8;
		// 0<= 1,2,3 <4
		// 8<= 9,10,11 <12
		// 8,9,10,11 값 중 랜덤
				
		System.out.println("[현재 시간:" + time + "시]");
		
		switch(time)
		{
			case 8:
				System.out.println("출근합니다.");
			case 9:
				System.out.println("회의를합니다.");
			case 10:
				System.out.println("업무를 봅니다.");
			default:
				System.out.println("외근을 나갑니다.");
		}
	}
}

랜덤한 값을 뽑기 때문에 실행마다 결과값이 바뀌게됨

break가 없기 때문에 조건이 맞는 case부터 아래를 전부 실행하고 빠져나옴

출력 결과 1
출력 결과2

package sec02.exam02_switch;

public class SwitchCharExample 
{
	public static void main(String[] args) 
	{
		char grade = 'B';
		
		//switch의 괄호안의 값은 정수타입만 가능 / Java7부터는 문자열도 가능하게 바뀜
		switch(grade)
		{
		//grade에 대문자 소문자 상관없이 A만 들어가 있으면 "우수 회원입니다."를 출력하기 위해
			case 'A':
			case 'a':
				System.out.println("우수 회원입니다.");
				break;
		//grade에 대문자 소문자 상관없이 B만 들어가 있으면 "일반 회원입니다."를 출력하기 위해
			case 'B':
			case 'b':
				System.out.println("일반 회원입니다.");
				break;
			default:
				System.out.println("손닙입니다.");
		}
	}
}

출력 결과

package sec02.exam02_switch;

public class SwitchStringExample 
{
	public static void main(String[] args) 
	{
		String position = "과장";

		//자바 7부터 문자열도 괄호에 넣을 수 있게 변경되었음
		switch (position) 
		{
			case "부장": 
				System.out.println("700만원");
				break;
			
			case "과장":
				System.out.println("700만원");
				break;
			default:
				System.out.println("300만원");
		}
	}
}

출력 결과

728x90
COMMENT