☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]JAVA_ECLIPSE07 조건문과 반복문

조반짝 2023. 8. 18. 16:37
728x90
반응형

제어문 : main()메서드의 시작 중괄호{에서 끝 중괄호} 까지 위에서부터 아래로 실행하는 흐름을 가지고 있다. 이러한 실행 흐름으 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것

 

제어문 안에 조건문, 반복문이 있다.

 

조건문_ if문

boolean - true, false 산출

true면 블록을 실행, false 면 블록 실행하지 않음

{} 생략 가능하나 생략하지 않고 작성하는 것을 추천. 중괄호를 작성하지 않으면 코드의 가독성이 좋지 않아 해석이 어렵고 버그 발생의 원인이 될 수 있다.

 

 


if-esle 문

if문의 조건식이 true이면 if문의 블록이 실행되고 조건식이 false이면 else 블록이 실행된다.

 

public class 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입니다!");
		}
	}

}

 

if-else if-else 문

조건문이 여러개인 if문

처음 if문의 조건식이 false일 경우 다른 조건식의 겨과에 따라 실행 블록을 선택할수 있는데, if블록의 끝에 else if문을 붙이면 된다.

else if문은 제한이 없다


If Dice 주사위 random.method

 

n개의 정수중에서 임의의 정수 하나를 얻기 위한 연산식

int num = (int) (Math.random() * n ) + start;

주사위 번호 연산식

int num = (int) (Math.random() * 6 ) + 1;

 

값을 입력을 안해도 랜덤으로 값이 변경된다.

num 11 을 사용하면 된다.

public class IfDiceExample {

	public static void main(String[] args) {
		
		double num1 = 0.0;
		double num2 = Math.random(); 
		// 0.0 <= Math.random() < 1.0
		System.out.println("num2 = " + num2);
		double num3 = 1.0;
		
		double num4 = num1 * 10;
		System.out.println("num4 = " + num4);
		double num5 = num2 * 10;
		System.out.println("num5 = " + num5);
		double num6 = num3 * 10;
		System.out.println("num6 = " + num6);
		
		int num7 = (int) num4;
		System.out.println("num7 = " + num7);
		int num8 = (int) num5;
		System.out.println("num8 = " + num8); // 0부터 시작함
		int num9 = (int) num6;
		System.out.println("num9 = " + num9);
		
		int num10 = (int) num7 + 1;
		System.out.println("num10 = " + num10);
		int num11 = (int) num8 + 1;
		System.out.println("num11 = " + num11); // 
		int num12 = (int) num9 + 1;
		System.out.println("num12 = " + num12);
		
	}

}
public class IfDiceExample {
// 주사위 를 굴러서 나올 수 있는 1,2,3,4,5,6  중에 하나의 수를 무작위를
//	뽑아서 출력하는 자바 프로그램
	public static void main(String[] args) {
		
//		double num1 = 0.0;
//		double num2 = Math.random(); 
//		// 0.0 <= Math.random() < 1.0
//		System.out.println("num2 = " + num2);
//		double num3 = 1.0;
//		
//		double num4 = num1 * 10;
//		System.out.println("num4 = " + num4);
//		double num5 = num2 * 10;
//		System.out.println("num5 = " + num5);
//		double num6 = num3 * 10;
//		System.out.println("num6 = " + num6);
//		
//		int num7 = (int) num4;
//		System.out.println("num7 = " + num7);
//		int num8 = (int) num5;
//		System.out.println("num8 = " + num8); // 0부터 시작함
//		int num9 = (int) num6;
//		System.out.println("num9 = " + num9);
//		
//		int num10 = (int) num7 + 1;
//		System.out.println("num10 = " + num10);
//		int num11 = (int) num8 + 1;
//		System.out.println("num11 = " + num11); // 
//		int num12 = (int) num9 + 1;
//		System.out.println("num12 = " + num12);
		
//		start부터 시작하는 n개의 정수 중에서 임의의 정수 하나를 얻기 위한 연산시
//		int num = (int) (Mat.random() * n) + start;

//		만약에, 로또 번호 하나를 뽑기 위한 연산으로 수정
//		int num = (int) (Mat.random() * 45) + 1;
		
//		이제, 주사위 번호 하나를 뽑기 위한 연산식으로 수정
// 		그리고, 1-6 중에서 주사위 번호 하나를 생성해서  좌측 num 변수에 대입
		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번이 나왔습니다");
		}
	}
}

 



switch문

변수의 값에 따라 실행문이 결정되기 때문에 같은 기능의 if문보다 코드가 간결해진다.

괄호 안의 변수 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다.

만약 괄호 안의 변수 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행한다.

defalut 값은 생략가능하다

 

case 끝에 break가 붙어있는 이유는 다음 case를 실행하지 않고 swith문을 빠져나가기 위해서다.

break가없다면 다음 case가 연달아 실행되는데, 이떄는 case값과 상관없이 실행된다.

 

 

break 문이 없는 case

break가 없다면 다음 case가 연달아 실행된다.

break가 있다면 각각의 하나씩 출력이된다.

package chapter04.sec01.exam06;

//조건문인 switch~case문에서 break문을 뺴고
//조건식을 구현하는 자바 프로그램 예시
public class SwitchNoBreakCaseExample {

	public static void main(String[] args) {
		
		//8 <= ... <=11사이의 정수뽑아서, 우측에 있는 time 변수에 대입
		int time = (int) (Math.random() *4) + 8; 
		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("외근을 나갑니다");

		}
		
	}
}

 

char 타입의 switch 문

package chapter04.sec01.exam07;

public class SwitchCharExample {

// char 타입 변수를 이용하여 알파벳 대소문자에 상관없이
// 동일하게 처리하도록 하는 switch문 활용 자바 프로그램 예시소스코딩
	public static void main(String[] args) {

		char grade = 'B';
		
		switch (grade) {
//		아래와 같이 case를 두가지 사용할 경우,
//		첫번째 case 또는 두번째 case 를 선택하여 결과를 출력
		case 'A':
		case 'a':
			System.out.println("우수회원입니다");
			break;
		case 'B':
		case 'b':
			System.out.println("일반회원입니다");
			break;
		default:
			System.out.println("손님입니다");
		}
		
	}

}

string 타입의 switch 문

package chapter04.sec01.exam08;

import java.util.Scanner;

//String 타입의 switch 문을 활용하여 직급별 월급을 화면으로 출력
public class SwitchStringExample {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		System.out.print("직급을 입력해주시기 바랍니다==>");
		String position = scan.next();
		
//		String position = "과장";
		
		switch (position) {
		case "부장":
			System.out.println(position + "님은 700만원");
			break;
		case "과장":
			System.out.println(position + "님은 500만원");
			break;
		case "대리":
			System.out.println(position + "님은 300만원");
		default:
			System.out.println("우리회사 직원아님");
			
		}
	}

}

 

 

728x90
반응형