728x90

 

 

제어문(control flow statement)

프로그램의 수행 흐름을 바꾸는 역할

1.조건문

2.반복문

3.분기문

 

 

1.조건문

조건에 따라 다른 문장이 수행되도록 해줌

1)if

2)switch

 

if문을 주로 쓰고,

switch문은 처리해야 하는 경우의 수가 많을 때는 switch문이 유리

 

1)if문

if (조건식) {  // 조건식은 논리값(true/false)
		수행문장;
}

--> 조건식의 결과가 true면 안에 있는 문장 실행
if(조건식) {
		수행문장;
} else {
		수행문장;
}
--> 조건식의 결과가 true면, 안에 있는 문장 실행
--> 조건식의 결과가 false면, else 안에 있는 문장 실행

if else문은 조건이 2가지 일 때만 사용

3가지 이상이면 if, else if, else를 사용

 

else if

if(조건식) {
		수행문장;
} else if(조건식) {
		수행문장;
} else {
		수행문장;
}

if문은 처음에 반드시 와야함

else if는 여러 개일 수 있음

else문은 없을 수 있음

 

if문 하나에서 순차적으로 false되면 다음 조건으로 넘어가다가 true가 되면 이후 조건은 수행x

  -  if문끼리는 true라도 연속 동작함

ex)

if(month == 1 || month == 2 || month == 12) {
		season = "겨울";
		if(temperature <= -15) {
				season += "한파 경보";
		} else if(temperature <= -12) {
				season += "한파 주의보";
		}
} else if (month >= 3 && month <=5) {
				season = "봄";
} else if (month >= 6 && month <=8) {
			  season = "여름";
				if(temperature >= 35) {
						season += "폭염 경보";
				} else if(temperature >= 33) {
									season += "폭염 주의보";
				}
} else if(month >= 9 && month <= 11) {
				season = "가을";
} else { 
				season = "해당하는 계절이 없습니다.";
}

 

 

2)switch

형태

switch (조건식) {
case 값1 :
case 값2 :
case 값3 : 
default : 
}

조건식 : 정수, 문자, 문자열

조건식 정수,문자,문자열만 들어갈 수 있으므로, case의 값도 정수, 문자, 문자열 중에서 들어갈 수 있으며 해당 값이 일치하면 콜론(:)의 오른쪽 실제 실행되는 코드를 입력하면 된다

switch() ()안에 변수 값과 일치한 case 값을 true/false 논리로 해서 true되면 해당 case 안에 코드가 실행됨

어디에도 해당되지 않는 때 처리하는 것이 default ( = else)

 

if문과 switch문 차이

if문은 true가 되면 해당 조건의 코드 발동하고,

switch는 true된 코드부터 아래까지 전부 실행

if는 true가 되면 해당 코드만 실행하고 빠짐

switch는 각 case 안에 break 코드를 넣어줌

 

중첩 여부

switch끼리 중첩 가능

if switch 둘이 섞어서도 둘을 중첩해서도 모두 가능

 

예시 코드

(switch문은 주로 주문 메뉴에서 자주 쓰임)

public void method4() {
		
		// 메뉴 자판기
		// 번호지정하면 실행되는 로직
		Scanner sc = new Scanner(System.in);
		System.out.println("===메뉴===");
		System.out.println("1.간단 계산기");
		System.out.println("2.짝/홀수 판단");
		System.out.println("3.n월의 마지막 날");
		System.out.print("메뉴 번호 : ");
		int menuNum = sc. nextInt();
		
		switch(menuNum) {
		case 1:
			System.out.println("간단 계산기입니다");
			break;
		case 2:
			System.out.println("짝홀수 판단입니다.");
			break;
		case 3:
			System.out.println("n월의 마지막 날입니다.");
		// 1-3외의 다른 수가 입력된다면?
		// 아무런 반응x -> default로 해결
		default:
			System.out.println("잘못된 메뉴 번호입니다");
		}
	}

 

 

728x90
반응형
728x90

2.(data) 타입

 

1)문자 : char

 

2)숫자

         정수 : byte, short, int, long

         실수 : float, double

3)논리 : boolean - true or false

 

위의 8가지가 기본형

 

 

3.기본형 참조형

1)기본형(Primitive type)

 - 8 : boolean, char, byte, short, int, long , float, double

 - 실제 값을 저장

 

2)참조형(Reference type)

 - 기본형을 제외한 나머지 모두(String, System )

 - 메모리 주소를 저장(4byte 또는 8byte)

 - 4바이트 40(4GB)까지 다를 있고, JVM이나 프로그램에서 사용하는 메모리 제외하면 실제 사용 메모리는 2gb 안됨

 - 32bit JVM = 4byte // 64bit JVM = 8byte : 최대40x40=160경바이트(1600TB) 실제는 테라바이트정도 사용가능

 

*기본형 변수는 타입마다 크기가 다름

  - byte : 1byte // short : 2byte // int : 4byte // long : 8byte

  - 참조형은 크기가 항상 4byte

 

Date today;             // 참조형 변수 today 선언

today = new Date();  // today 객체의 주소를 저장

           (객체 생성)

 

728x90
반응형

+ Recent posts