Java

Java, 연산자(최우선, 산술, 관계, 논리, 조건, 증감, 대입, 부정, 비트)

greenyellow-s 2024. 7. 8. 13:59
728x90
반응형

2024-7-5 네이버 클라우드

 

연산자

 

1. 최우선 연산자
( ) ++ --

int a = 5;

a++ // ==> 6
++a // ==> 5



2. 산술 연산자
+ - * / %
나머지(%)는 항이 반드시 정수형이어야 한다.

3. 관계연산자
> 크다
< 작다
>= 이상
<= 이하
== 같다
!=, <> 같지 않다

4. 논리연산자
조건이 2개 이상일 때 가능하다.

|
< 논리 연산자 종류 >
&& - 모든 조건이 참일 때 참
|| - 조건 중에서 1개라도 참이면 참

 

 [문제] 점수를 입력하여 합격인지 불합격인지 판별하는 프로그램 점수가 80~100 사이면 합격을 한다.

Operator02.java

package operator;

import java.util.Scanner;

public class Operator02 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("점수를 입력하시오 : ");
		int score = scan.nextInt();
		//scan이라는 변수값에 주소가 들어와 Scanner라는 클라스에서 불러옴
		
		String result = score>=80 && score<=100 ? "합격":"불합격";
		 
		System.out.println(result);
	}
}

 

[실행결과]

점수를 입력하시오 : 85

합격


5. 조건연산자(삼항 연산자)
[형식]
조건 ? 참 : 거짓

6. 증감 연산자
++
--

7. 대입 연산자
+=
-=
*=
/=
%=

[예시]

sum+=a
sum = sum+a

 

** a=a+1 / a+=1 / a++
모두 같은 결과가 나온다.

8. 부정(NOT) 연산자
형식 : !=
true -> false
false -> true

Operator05.java

package operator;

public class Operator05 {

	public static void main(String[] args) {
		boolean a = 25 > 36;
		System.out.println("a = "+a);
		System.out.println("!a = " + !a);
		System.out.println();
		
		String b = "apple";
		String c = "apple";
		// apple이라는 값은 하나이고 b,c가 하나의 apple 주소를 불러온다.
		
		String d = new String("apple");
		// 클래스 String을 새로 계속 만들어 d가 새로운 String안에 있는 apple을 가져온다.
		
		/*주소 구분*/
		System.out.println("b == c : " + (b == c ? "같다" : "다르다"));
		// 현재 방안에 들어있는 주소가 같은지 다른지 확인 - 주소가 같다는 얘기
		System.out.println("b == d : " + (b == d ? "같다" : "다르다"));
		// 주소가 다르다
		System.out.println();
		
		/*내용 차제를 비교, 문자열 자체를 비교하고 싶을 때*/
		System.out.println("b.equals(c) : "+ (b.equals(c)? "같다" : "다르다"));
		System.out.println("b.equals(d) : "+ (b.equals(d)? "같다" : "다르다"));
		System.out.println();
		
		/*부정형*/
		System.out.println("!b.equals(c) : "+ (!b.equals(c)? "같다" : "다르다"));
		System.out.println("!b.equals(d) : "+ (!b.equals(d)? "같다" : "다르다"));
		System.out.println();
	}

}

 

< new String >

String a = "apple";

String b = "apple";

String c = new String("apple")

 

a, b는 하나의 "apple" 주소를 불러온다.

c는 "apple"에게 새로운 주소를 부여하여 a,b와는 다른, 새로 만들 String의 "apple"을 가져온다.

따라서 a,b는 주소가 같고 c는 주소가 다르다.

 

< 문자열, 주소 구분 >

b.equals(c)

문자열 구분

b == c

주소구분


비트(bit) 연산자

 

비트 연산자는 0 또는 1로 구분

1. ~ (bit NOT, 1의 보수)
0 -> 1

1 -> 0

2. bit의 논리연산자
&(AND) - 모두 1일때 1
| (OR) - 한개라도 1이면 1
XOR - 똑같은 값이 들어오면 0 아니면 1

3. bit의 이동 연산자 - Shift 연산자
<< 값이 커진다
>> 값이 작아진다

728x90
반응형