2023. 10. 9. 14:40ㆍJava언어 공부
자바의 if문
자바의 if 문은 C언어의 if문과 그 구조가 같다.
단, 조건문은 반드시 boolean으로 평가되는 표현식이어야 한다.
if(x % 2){
}
위와 같은 경우는 if 조건문 안의 식이 boolean이 아니기 떄문에 자바에서는 에러가 난다.
선택 연산자 (? :)를 사용하면 편하기도 하다.
선택 연산자는 if문에서 둘중 하나를 선택하는 경우에 대신 사용하기도 한다.
n > 0 "양수" : n < 0 ? "음수" : "0"
위와 같이 여러 번 사용도 가능하다.
객체 비교
참조 변수끼리 비교할 때는 객체의 내용이 아닌 주소를 가지고 비교함
Rectangle box1 = new Rectangle(10,10,100,100);
Rectangle r = box1;
Rectangle box2 = new Rectangle(10,10,100,100);
box1 == r //true
box1 == box2 //false
box1.equals(box2) //true
위와 같이 두 객체의 내용을 비교하려면 그 클래스의 메소드를 이용하여 비교해야 한다.
논리 연산자
논리곱 (&&), 논리합 (||), 논리부정(!)
논리곱과 논리합 연산자는 지연평가를 한다.
여기서 지연평가는 앞에 조건식이 안맞으면 뒤에 조건식을 안 보는 그런 것이다.
&, |, ^ 연산자 : &&, || 연산자와 동일하지만 지연 평가를 하지 않는다.
논리합, 논리곱은 결합법칙, 분배법칙, 드모르간의 법칙이 성립한다.
이를 이용하면 조건식을 더 간결하고 가독성 있게 표현할 수 있다.
부동 소수의 비교
반올림 오차 떄문에 비교하기가 힘들다 (비교하지 않는게 바람직함)
극복방법 :
매우 작은 수를 정의한 다음에 두 수의 차이가 작은 수보다 작은지를 비교한다.
혹은
Double.compare를 활용하는 경우도 있다.
자바의 switch문
C/C++에서는 switch문의 괄호 안에는 정수형이나 문자형만 올 수 있었다.
하지만, Java에서는 문자열, 열거형 등이 올 수 있다.
그 외에는, C와 C+와 유사하다.
더 추가된 내용으로는 아래와 같은 코드가 가능하다.
switch(month){
case 4,6,9,11: return 30;
case 2: return 28;
default: return 31;
}
break를 적지 않으면 'fall through' 현상이 발생하는데 자바에서는 ,를 사용해 간단하게 나타낼 수 있다.
' : ' 대신에 ->를 사용할 수 있는데 이때 문자열을 나타내기 위해서는
{}와 yield 키워드를 사용해야 한다.
패턴 매칭 switch문
switch pet{ //Pet pet
case Cat c: c.meow(); break;
case Dog d: d.bark(); break;
case null: break;
default: pet.makeSound();
}
//case Cat c, Dog d처럼 패턴 매칭에서는 여러 개 매칭 불가
//null과 default는 결합 가능 (ex. case null, default)
when을 사용하면 추가적으로 검사가 가능하다.
(ex. case String s when s.length() > 0 -> .... )
'Java언어 공부' 카테고리의 다른 글
[Java] 11. 예외 처리 (1) (1) | 2023.10.23 |
---|---|
[Java-FX] 4. Java FX 레이아웃 및 사건 기반 프로그래밍 (2) (2) | 2023.10.22 |
[Java-FX] 3. Java FX 레이아웃 및 사건 기반 프로그래밍 (1) (0) | 2023.10.08 |
[Java] 10. 상속과 구체화 (2) (0) | 2023.10.07 |
[Java-FX] 2. Java FX와 도형 그리기 (2) (0) | 2023.10.01 |