JAVA DAY6 - 연산자2

어뮤즈온·2020년 11월 25일
0

초급자바

목록 보기
6/31
post-custom-banner

비교연산자

  • <, >, <=, >=, ==, !=
  • equals() 문자열비교
int x = 10;
int y = 20;
boolean b = x < y; //비교연산자의 연산결과는 boolean이다.
System.out.println(b); // true 출력

b = x <= y - 15;
System.out.println(b); // flase 출력
// 산술연산 후 비교연산을 수행

문자열 비교연산

String str1 = "abc";
String str2 = "abc";
b = str1 == str2; //문자열의 내용이 아닌 주소를 비교
System.out.println(b); // true 출력

String의 내용을 비교하기 위해서는 equals()메서드를 사용한다.

b = str1.equals(str2);
Sytem.out.println(b); //true 출력
b = !str1.equals(str2);
Sytem.out.println(b); //false 출력

예제

다음의 문장들을 코드로 작성하시오.

//1. x는 y보다 작거나 같다.
b = x <= y;
System.out.println(b); //true 출력

//2. x + 5와 y는 같다.
b = x + 5 == y;
System.out.println(b); //false 출력

//3. y는 홀수이다.
b = y % 2 == 1;
System.out.println(b); //false 출력

//4. "기본형"과 "참조형"은 다르다.
String str1 = "기본형";
String str2 = "참조형";
b = !str1.equals(str2);
System.out.println(b);

논리연산자

  • &&(AND), ||(OR), !(NOT)
  • 피연산자로 boolean만 허용된다.
int x = 10;
int y = 20;
boolean b = 0 < x && x < 10 || x < y;
//&&의 우선순위가 ||보다 높다.

b = !(x<y); //조건식의 결과를 반대로 저장한다.
System.out.println(b); //false 출력

논리연산자의 효율적 연산

b = true && true; //true;
b = true && false; //false;
b = false && true; //false;
b = false && false; //false;

b = true || true; //true;
b = true || false; //true;
b = false || true; //true;
b = false || false; //false;

왼쪽의 피연산자에서 결과가 정해지면 오른쪽은 수행하지 않는다.

int a = 10;
b = a < 5 && 0 < a++;
System.out.println(a); // 10 출력

위에 식에서 왼쪽 a < 5가 false이기 때문에 뒤에 a++이 작동하지 않는다.

예제

다음의 문장들을 코드로 작성하시오.

//1. x가 y보다 크고, x가 10보다 작다.
b = x > y && x < 10;

//2. x가 짝수이고, x가 y의 배수이다.
b = x % 2 == 0 && x % y == 0;

//3. x가 3의 배수이거나, x가 5의 배수이다.
b = x % 3 == 0 || x % 5 == 0;

비트연산자, 기타연산자

1) 비트연산자

  • |, &, ^, ~, <<, >>
  • 비트 단위로 연산

2) 기타연산자

  • .(참조연산자) : 특정 범위(클래스) 내에 속해 있는 멤버를 지칭할 때 사용
    ** 참조연산자의 기본값은 null이다.
  • (type) : 형변환
  • ?:(삼항연산자) : 조건식 ? 조건식이 참일 경우 수행할 문장 : 조건식이 거짓일 경우 수행할 문장

문제

숫자를 입력받고, 그 숫자가 1이나 3이면 남자를 2나 4면 여자를 출력하시오. 단, 그 외의 숫자를 입력하면 확인불가를 출력하시오.

System.out.println("숫자를 입력해주세요>");
int regNo = Integer.parseInt(sc.nextLine());
String gender = regNo == 1 || regNo == 3? "남자" : (regNo == 2 || regNo == 4 ? "여자" : "확인불가");
System.out.println("당신의 성별은 " + gender + "입니다.");
profile
Hello, world!
post-custom-banner

0개의 댓글