Java 조건문과 반복문 #1

jjinny_0609·2023년 2월 2일
0

Java

목록 보기
6/31

조건문과 반복문

조건문 : if와 switch문이 있다.

  • 종류
    if
    if-else
    switch

if( 조건식 ){
실행문 A //조건식이 true이면 실행
}
실행문 B //조건식이 false이면 실행
ex) 중괄호가 없는 예제

public class Ch04_1 {
	public static void main(String[] args) {
		int score = 93;
		
		if(score>=90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A 입니다.");
		}//중괄호는 if문의 범위 - 두줄 다 실행함
		
		if(score< 90) //if문은 중괄호가 없으면 밑에 한줄까지만 확인함
			System.out.println("점수가 90보다 작습니다.");
			System.out.println("등급은 B 입니다.");
	}
}

ex) 중괄호 있는 예제

public class Ch04_IfElseExample {
	public static void main(String[] args) {
		int score = 85;
		
		if(score>=90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A 입니다.");
		} else {	
			System.out.println("점수가 90보다 작습니다.");
			System.out.println("등급은 B 입니다.");
		}
	}

}

ex) if else if else 예제

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("점수가 80~89 입니다.");
			System.out.println("등급은 B 입니다.");
		} else if(score>=70) {
			System.out.println("점수가 70~79 입니다.");
			System.out.println("등급은 C 입니다.");
		} else {
			System.out.println("점수가 70 미만 입니다.");
			System.out.println("등급은 D 입니다.");
		}
	}
}

ex) ifDiceExample 예제

Math.random()

java.lang.Math에 위치한 랜덤함수 호출하는 메서드
(클래스 Math에는 기본 지수, 로그, 제곱근 및 삼각 함수와 같은 기본 숫자 연산을 수행하는 방법이 포함되어 있습니다.)

public class IfDiceExample {
	public static void main(String[] args) {
		int num = (int)(Math.random() * 6) + 1;	//int 타입으로 형변환을하고 범위는 ~6까지 지정 후 1을 더해줌(0단위가 안나오게끔)
		System.out.println(Math.random() * 6);	//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번이 나왔습니다.");
		}
	}
}

switch

switch문은 괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다.
만약 괄호의 변수 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행한다.
Switch(변수){
case :
출력할 내용
break;
case :
출력할 내용
break;
}
ex) SwitchExample

public class SwitchExample {
	public static void main(String[] args) {
		int num = (int)(Math.random()*6) + 1;
		
		switch(num) {
			case 1:
				System.out.println("1번이 나왔습니다.");
				break;
			case 2:
				System.out.println("2번이 나왔습니다.");
				break;
			case 3:
				System.out.println("3번이 나왔습니다.");
				break;
			case 4:
				System.out.println("4번이 나왔습니다.");
				break;
			case 5:
				System.out.println("5번이 나왔습니다.");
				break;
			default:
				System.out.println("6번이 나왔습니다.");
				break;
		}
	}
}

랜덤함수라 실행할때마다 값이 매번 바뀜

위 예제에서 만약 break문을 안주게 되면 1번값이 나왔을때 1번 아래 값을 전부 받기때문에 아래와 같이 출력됨.

break가 없는 case

ex)SwitchNoBreakCaseExample

public class Ch04_6_SwitchNoBreakCaseExample {

	public static void main(String[] args) {
		//8<= … < 12(8+4) 사이의 정수 얻기
		int time = (int)(Math.random()*4) + 8; 	// 8<= ... <=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가 없기 때문에 아래의 출력이 차례대로 출력됨.

char 타입의 switch문

char 타입 변수를 이용해서 알파벳 대소문자에 관계없이 동일하게 처리되도록 switch로 만든 예제

ex) SwitchCharExample

public class Ch04_7_SwitchCharExample {

	public static void main(String[] args) {
		char grade = 'B';
		
		switch(grade) {
			case 'A':
			case 'a':
				System.out.println("우수 회원입니다.");
				break;
			case 'B':
			case 'b':
				System.out.println("일반 회원입니다.");
				break;							
			default:
				System.out.println("손님입니다.");
		}
	}
}

String 타입의 switch문

  • " " String, ' ' char 인거 확인
    ex) SwitchStringExample
public class Ch04_8_SwitchStringExample {
	public static void main(String[] args) {
		String position = "과장";
		
		switch(position) {
		case "부장":
			System.out.println("700만원");
			break;
		case "과장":
			System.out.println("500만원");
			break;
		default:
			System.out.println("300만원");
		}
	}
}

끝.

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :

0개의 댓글