나의 IT일지
연산자(삼항, 대입) 본문
- 연산자 : 연산에 사용되는 표시나 기호로, 데이터를 연산하기 위해서 사용
연산자 종류 | 연산자 | 피연산자 수 | 산출값 | 기능 |
산술 | +, -, *, /, % | 이항 | 숫자 | 사칙연산 및 나머지 계산 |
부호 | +, - | 단항 | 숫자 | 음수와 양수의 부호 |
문자열 | + | 이항 | 문자열 | 두 문자열을 연결 |
대입 | =, +=, -=, *=, /=, %= | 이항 | 다양 | 우변의 값을 좌변의 변수에 대입 |
증감 | ++, -- | 단항 | 숫자 | 1만큼 증감 |
비교 | ==, !=, >, <, <=, >= | 단항 | 논리 | 값의 비교 |
논리 | !, &&, || | 단항 or 이항 | 논리 | 논리 부정, 논리곱, 논리합 |
비트 논리 | &, |, ^ , ! | 단항 or 이항 | 논리 | 비트 논리 부정, 비트 논리곱, 비트 논리합 |
비트 쉬프트 | <<, >> | 이항 | 숫자 | 비트 위치 이동 |
조건 | (조건)? 참:거짓 | 삼항 | 다양 | 조건식에 따라 참 또는 거짓 중 하나 선택 |
- 연산자 우선순위
- 최우선 연산자"[ ],( )"
- 단항 연산자 "!, ~, +, -, ++"
- 산술 연산자 "+, -, *, /, %"
- 쉬프트 연산자 "<<,>>"
- 관계 연산자 "<, >,==, !="
- 논리 연산자 "&&, ||"
- 삼항 연산자 "(조건)? 참 :거짓"
- 대입 연산자 "=, +=,-=
삼항 연산자
삼항 연산자란 항이 3개인 연산자로, "?" 앞에 있는 조건에 따라 항목1이나 항목2를 수행하는 연산자이다.
(조건) ? 항목 1: 항목2
조건이 참일경우, 항목1이 실행결과가 되며, 거짓일 경우, 항목2이 실행이 된다. 예를 들면 "(a >= 100)? System.out.printIn("100이상인 자연수") : System.out.printIn("100 미만인 자연수")"라는 코드가 있다고 하자. 만약 a에 200을 저장했을 경우, 100이상인 자연수를 출력하며, a에 20을 저장했을 경우, 100미만인 자연수를 출력한다.
package pack1;
public class C1 {
public static void main(String[] args) {
int age = 20;
System.out.println(age>19?"성인입니다":"성인이 아닙니다.");
age = 17;
System.out.println(age>19?"성인입니다":"성인이 아닙니다.");
}
}
항목에도 삼항연산자를 사용해서 조건마다 출력값을 다르게 할 수 있다. 예를들면 "(조건1)? 항목1:(조건2)? 항목2: 항목3" 같은 경우, 조건1이 거짓이면 조건2로 넘어가며, 조건2도 거짓이면 항목3이 출력된다. 이처럼 항목에 삼항연산자를 사용하면, 조건에 따라 출력값을 조절 할 수 있다.
package pack1;
import java.util.Scanner;
public class Traffic_Light {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("신호등 프로그램");
System.out.println("신호입력");
System.out.println("빨간불:1, 초록불:2, 노란불:3");
System.out.println("신호입력:");
int sign = sc.nextInt();
String result;
result = (sign==1)?"정지하세요":(sign==2)?"출발하세요":(sign==3)?"서행하세요":"잘못입력하셨습니다";
System.out.println(result);
}
}
대입연산자
대입연산자란 오른쪽 데이터를 왼쪽 변수에 저장하는 연산자로, 오른쪽 데이터에는 상수, 변수, 수식이 온다. 만약 값이 있는 변수에 다른 값을 저장을 할려고 하면, 대입연산자를 통해 저장을 하면 된다. 이때, 변수에 있던 값은 삭제가 된다.
대입연산자에는 오른쪽 피연산자의 값을 변수에 저장하는 단순 대입 연산자와 정해진 연산을 수행한 후 결과를 변수에 저장하는 복합대입연산자가 있다.
연산자 | 기능 | 예시 | 뜻 |
= | 오른쪽 데이터를 왼쪽 변수에 저장 | a=1 | a에 1을 저장 |
+= | 왼쪽 변수에 오른쪽 데이터를 더한 후에 왼쪽변수에 저장 | a+=2 | a에 2를 더한 후 변수a에 저장 |
-= | 왼쪽 변수에 오른쪽 데이터를 뺀 후에 왼쪽변수에 저장 | a-=4 | a에 4를 빼서 변수a에 저장 |
*= | 왼쪽 변수에 오른쪽 데이터를 곱한 후에 왼쪽변수에 저장 | a*=7 | a에 7를 곱해서 변수a에 저장 |
/= | 왼쪽 변수에 오른쪽 데이터를 나눈 후애 왼쪽변수에 저장 | a/=3 | a에 3을 나누어서 변수a에 저장 |
%= | 왼쪽 변수에 오른쪽 데이터를 나눈 나머지를 왼쪽변수에 저장 | a%=5 | a에 5를 나눈 나머지를 변수a에 저장 |
복합 대입 연산자의 경우, 값을 왼쪽의 변수에 저장하지만, 기존의 변수에 저장되어 있는값을 왼쪽 값으로 연산 후에 오른쪽 변수에 저장한다.
대입 연산자의 연산 진행 방향은 오른쪽에서 왼쪽이기에 여러 변수에 값을 저장할 경우, 오른쪽에는 무조건 값이나 값이 저장되어 있는 변수이여야 한다.
package pack1;
public class C2 {
public static void main(String[] args) {
int x = 10;
x = x+10;
System.out.println(x);
int y=10;
y += 10;
System.out.println(y);
int a=3,b,c,d;
b=c=d=a;
a +=2;
System.out.println(a);
b -=2;
System.out.println(b);
c *=2;
System.out.println(c);
d /=2;
System.out.println(a);
}
}
위의 결과를 보면 "a+=10"과 "a=a+10"이 같은 결과를 같는 것을 알 수 있다. 즉, "a+=10"은 변수 a에 10을 더한 뒤, 변수a에 저장하라는 뜻이며, "a=a+10"인 것을 알 수 있다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
조건문(switch문) (0) | 2023.03.22 |
---|---|
조건문(if문) (0) | 2023.03.21 |
연산자 (논리, 비트) (1) | 2023.03.17 |
연산자(산술, 단항, 비교) (0) | 2023.03.16 |
변수와 상수 (0) | 2023.03.15 |