조건문
불린은 조건문에서 핵심적인 역할을 하는데 이 불린 값을 기준으로 실행 흐름을 제어하기 떄문이다.
if
조건문은 if로 시작한다.
if 뒤의 괄호를 if절, 중괄호가 then절이다. if절이 true 값이라면 then절이 실행되고 false라면 실행되지 않는다.
if(// true or false){
// then절
}
if절이 false라면 아무 값도 표시되지 않는다.
else
if만으로는 좀 더 복잡한 상황을 처리하는데 부족하다. true일 때는 then절을 실행하고 false일 때는 else절을 실행한다.
if(// true or false){
// then절
} else{
// else절
}
true일 때
false일 때
else if
else if절을 이용하면 조건문의 흐름을 좀 더 자유롭게 제어할 수 있다. if절의 값이 true라면 then절이 실행된다. false라면 else if 절로 제어가 넘어 간다. else if절의 값이 true라면 else if then절이 실행된다. false라면 else절이 실행된다. else if절은 여러개 쓸 수 있고 생략할 수도 있다.
if(// true or false){
// then절
} else if(// true or false){
// else if then절
} else {
// else절
}
예제를 보면 쉽게 이해가 된다. 간단한게 요약하자면 이런 특징을 가지고 있다.
- true가 나올 때 까지 다음 절로 넘어간다.
- true가 나온다면 다음 절이 true이더라도 출력되지 않는다.
switch
조건문의 대표적인 문법은 if문이다. 사용빈도는 적지만 조건이 많다면 switch문이 로직을 보다 명료하게 보여줄 수 있다.
switch 문을 사용할 때 한가지 주의 할 것은 switch의 조건으로는 몇가지 제한된 데이터 타입만을 사용할 수 있다.
byte, short, char, int, enum, string, Character, Byte, Short, Integer
값이 1일때
break;를 쓰지 않고 값이 1이라면 “one”, “two”, “three”, “defult”모두 표현된다. 만약 break;를 쓰지 않고 값이 2이라면 “two”, “three”, “defult”가 표현된다.
defult문은 case를 제외한 값일 경우 표현되는 것이다.
비교와 boolean
Boolean
불린은 참과 거짓을 의미하는 데이터 타입으로 bool이라고도 불린다. 불린은 정수나 문자와 같이 하나의 데이터 타입인데, 참을 의미하는 true와 거짓을 의미하는 false 두 가지의 값을 가지고 있다.
비교 연산자
==
좌항과 우항을 비교해서 서로 값이 같다면 true 다르다면 false가 된다. ‘=’가 하나면 대입연산자 이지만 두개이면 비교 연산자가 된다.
!=
‘!’는 부정을 의미한다. !=의 결과는 ==과 정반대의 결과를 보여준다.
>
좌항이 우항보다 크다면 참, 그렇지 않다면 거짓임을 알려주는 연산자이다. ‘<”는 반대의 의미이다.
>=
좌항이 우항보다 크거나 같다. 마찬가지로 ‘<=”는 반대의 의미이다.
.equals
문자열을 비교할 떄 사용하는 메소드이다.
String은 클래스 이므로 앞자리를 대문자로 써야된다.
.equals는 메소드이므로 뒤에 ()가 들어간다.
자료형
실수형(Real number)
실수형 자료형은 float와 double이있다.
정수도 실수에 포함되기 때문에 정수데이터도 입력가능하다. 그러나
저장되는 방식이 다르다.
ex) float a = 1; > 1.0
float
float는 실수 데이터형이다. 컴퓨터는 실수 데이터를 무조껀 Double로 받기 때문에 float변수를 초기화 할 때 float변수로 받는 다는 것을 표현해주어야 한다.
double
double은 컴퓨터가 자동으로 double형 데이터로 인식하기 때문에 float와 달리 변수 초기화시 표현을 해줄 필요가 없다.
정수형
정수형은 int를 주로 사용한다. 그보다 값이 크면 long으로 변수를 선언해 주면된다.
int
정수형 이므로 실수 값을 입력할 수 없다.
예제
밑변과 높이를 입력 받아 삼각형의 넓이 구하기
밑변? 10
높이? 10
넓이: xxx
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
: 이 세가지는 사용자가 입력값을 넣었을 때 입력값이 이상하면 던져버리겠다는 의미의 코드이다. 입력값을 넣을때 이 세가지의 코드는 세트이다.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
: import로 불러온 코드를 사용하는 것이다. 이것 또한 거의 세트이나 마찬가지이다. 문자열을 입력할 수 있게 된다. 문자열을 제외한 다른 입력값은 던져버린다. 구체적으로는 다음과 같다.
system.in : 키보드로 입력한 1byte문자
InputstreamReader : 1byte 문자를 2byte로 변환
BufferedReader : 메모리에 저장공간을 만들어 입출력 속도를 빠르게 함.
int hei,wid;
double area;
: hei와 wid는 10으로 정수 값이므로 int를 사용했고, area는 float이나 double값 둘다 사용할 수 있으나 여기서는 double로 선언하였다.
hei = Integer.parseInt(br.readLine());
wid = Integer.parseInt(br.readLine());- 받아온 문자열을 정수값으로 변환해 준다.