쌍용 강북 교육센터 국비학원 Day 5일차
조건문 (if, switch)
조건을 판단해서 그 상황에 맞게 처리해야 할 경우가 생기게 된다. 이렇듯 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 쓰이는 것이 조건문이다.
if ( 조건문 ) { 실행문 }
else if ( 조건문 ) { 실행문 }
else { 실행문 }
조건문이 true 이면 실행문을 실행하고, false 이면 else 의 실행문이 실행된다. 모든 조건문이 true 일 경우 순차적인 true 값 첫번째만 실행되고 나머지는 실행되지 않는다.
else if 는 다중 조건문으로 조건이 여러가지일 경우 사용된다.if 문 속의 if 문을 또 사용할 수 있는 중첩 if문도 가능하다. (실행문이 하나일 때는 중괄호 생략가능)
switch ( key ) {
case value :
break;
case value2 :
break;
case value3 :
break;
default :
break;
}
key 값이 value 값에 해당 될 경우 해당하는 case 문이 실행된다. case 문은 if 문의 else if 문과 동일하고
if 문과의 다른점 - switch 문은 true 인값 이하로 순차적으로 실행된다 구절마다 그래서 원치 않을경우 break가 필요하다.
if 문의 else 와 switch 문의 default 의 동작의미는 동일하다
switch 문을 사용할 때 한가지 주의 할 것은 switch의 조건으로는 몇가지 제한된 데이터 타입만을 사용할 수 있다. byte, short, char, int, enum, String, Character, Byte, Short, Integer
try catch 문
try { 예외발생할 가능성이 있는 문장 }
catch ( Excpetion e ) { 실행문 }
finally { 실행문 }
기본적인 try catch 구문의 구조이다.
try 문에서 Exception 이 발생할 경우 catch (Exception e) 로 빠져서 그안의 실행문을 실행한다.
마지막의 finally 블럭은 예외발생 여부와 관계없이 항상 실행되어야 하는 문장을 적는다. (생략 가능)
예외 발생시 try -> catch -> finally 순으로, 발생하지 않은 경우 try -> finally 순으로 실행된다.
Exception 이 발생했을 경우, 이를 처리하기 위한 문장을 적는다. catch 블럭에는 예외 발생시 발생예외에 해당하는 클래스의 인스턴스가 만들어진다. 보통 이곳에 예외메시지를 출력하고 로그로 남긴다.
finally 블럭은 보통 자원이나 DB에 커넥션 한 경우, 파일 닫기, 연결 닫기(close) 등과 같은 '정리' 코드를 넣는데 사용된다.
예외가 try 블럭에서 발생한 경우
- 발생한 예외와 일치하는 catch 문이 있는지 확인
- 일치하는 catch 문이 있다면 catch 블럭 내의 문장을 모두 실행하고 try catch 문을 빠져나가서 그 다음 문장을 수행
- 일치하는 catch 문이 없다면 예외는 처리되지 못하고 에러 발생.
예외 발생시, 예외가 발생한 위치 이후에 있는 try블럭의 문장들은 수행되지 않으므로, try블럭에 포함시킬 코드의 범위를 잘 선택 해야한다.
wrapper 클래스
기본자료형 (원시형, primitive) | wrapper 클래스 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
기본자료형(원시형)은 데이터 저장 및 사칙연산에서만 사용하는 것이고, wrapper 클래스는 데이터 저장 및 사칙연산뿐만아니라 아주 다양한 기능의 메소드가 제공되므로 다방면으로 사용되어진다.
Boxing (박싱) 이란 ?
-> 기본자료형(boolean, byte, short, int, long, char, float, double)으로 되어진 변수를 객체타입인 Wrapper 클래스(Boolean, Byte, Short, Integer, Long, Character, Float, Double) 타입의 객체로 만들어주는 것을 말한다.
UnBoxing (언박싱) 이란?
-> Wrapper 클래스(Boolean, Byte, Short, Integer, Long, Character, Float, Double)로 되어져 있는 객체를 기본자료형(boolean, byte, short, int, long, char, float, double)으로 만들어주는 것을 말한다.
ex)
출력은 10, 10, 10, 20 이다
Math 클래스
반올림 메소드 - Math.round();
입력한 실수의 정수 일의 자리까지만 보여주고 나머지 소수부는 반올림하면서 삭제한다. 소수점 자리를 정하고 싶을 경우 산술식을 넣어준다.
ex ) a = 93.45
Math.round( a*10 ) / 10.0 = 93.5
올림 메소드 - Math.ceil(); (ceil - 천장이라는 뜻)
내림 메소드 - Math.floor(); (floor - 바닥)
절댓값 메소드 - Math.abs();
랜덤 메소드 - Math.random();
0.0 이상 1.0 미만의 실수(double) 값을 랜덤하게 나태내어주는 메소드이다. 즉, 0.0 <= 임의의 난수(실수) < 1.0
범위를 지정한 랜덤한 정수 = ( int ) ( Math.random() * 구간범위 ) + 최소값 ; ( 구간범위 = 최댓값 - 최소값 + 1 )
ex )
구간범위 1 ~ 10 까지의 랜덤한 정수 출력
Math.random() - > 0.0 일 때 -> ( int ) 0,0 * (10-1+1) +1 - > 1
구간범위 3 ~ 7 까지의 랜덤한 정수 출력
Math.random() - > 0.799899471039433 일 때 -> ( int ) 0.799899471039433 * (7-3+1) +3 -> 6.999497355197165 = 6
(자바 Random 클래스의 객체를 만들어 nextInt();를 사용해도 무방하다. 구간범위는 동일하다)
'Java' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 7일차 Java (다중 for문, label, while, do while) (0) | 2023.01.10 |
---|---|
쌍용강북교육센터 국비 학원 Day 6일차 Java (equals, for문) (0) | 2023.01.09 |
쌍용강북교육센터 국비 학원 Day 4일차 Java (Casting, Operator, Scanner) (0) | 2023.01.05 |
쌍용강북교육센터 국비 학원 Day 3일차 Java (생성자, overloading) (0) | 2023.01.04 |
쌍용강북교육센터 국비 학원 Day 2일차 Java (static, 자료형 타입) (0) | 2023.01.03 |