Difference between revisions of "컴퓨터프로그래밍및실습 (2022년)/0908"
Jump to navigation
Jump to search
(Created page with "== 연산자 == == 조건문 == == 반복문 == category:컴퓨터프로그래밍및실습") |
|||
Line 1: | Line 1: | ||
== 연산자 == | == 연산자 == | ||
=== 연산자와 연산식 === | |||
<table2 class=wikitable head=top sep=semicolon align=clccl> | |||
연산자 종류 ; 연산자 ; 피연산자 수 ; 산출값 ; 기능 설명 ; 예 | |||
산술 ; +, -, *, /, % ; 이항 ; 숫자 ; 사칙연산 및 나머지 연산 ; 2 + 3 | |||
부호 ; +, - ; 단항 ; 숫자 ; 음수와 양수의 부호 ; -2 | |||
문자열 ; + ; 이항 ; 문자열 ; 두 문자열을 연결 ; "abc" + "def" | |||
대입 ; =, +=, -=, *=, /=, %=, &= <br/>^=, !=, <<=, >>=, >>>= ; 이항 ; 다양 ; 우변의 값을 좌변의 변수에 대입 ; i += 3 | |||
증감 ; ++, -- ; 단항 ; 숫자 ; 1만큼 증가/감소 ; i++ | |||
비교 ; ==, !=, >, <, >=, <=<br/>instanceof ; 이항 ; boolean ; 값의 비교 ; i > j | |||
논리 ; !, &, |, &&, | | ; 단항<br/>이항 ; boolean ; 논리적 NOT, AND, OR 연산 ; !(a < 3), (a < 3) && (a > 1) | |||
조건 ; (조건식) ? A : B ; 삼항 ; 다양 ; 조건식에 따라 A 또는 B 중 하나를 선택 ; a = (x > y) ? x : y | |||
비트 ; ~, &, |, ^ ; 단항<br/>이항 ; 숫자<br/>boolean ; 비트 NOT, AND, OR, XOR 연산 ; ~a, a & b | |||
쉬프트 ; >>, <<, >>> ; 이항 ; 숫자 ; 비트를 좌측/우측으로 밀어서 이동 ; a >> 3 | |||
</table2> | |||
=== 연산의 방향과 우선순위 === | |||
<syntaxhighlight lang="java"> | |||
100 * 2 / 3 % 5 | |||
</syntaxhighlight> | |||
=== 부호 연산자 === | |||
<syntaxhighlight lang="java"> | |||
int i1 = +100; // 부호 + (양수) | |||
int i2 = -100; // 부호 - (음수) | |||
double d1 = +3.14; | |||
int x = -100; | |||
int result1 = -x; // OK | |||
short s1 = 100; | |||
short s2 = -s1; // 오류. 정수 연산은 int로 바뀌기 때문 | |||
int i3 = -s1; // OK | |||
</syntaxhighlight> | |||
=== 증감 연산자(++, --) === | |||
<syntaxhighlight lang="java"> | |||
++i; | |||
i++; | |||
--i; | |||
i--; | |||
//------------------ | |||
int x = 10; | |||
int z; | |||
z = ++x; | |||
// 위 코드는 아래와 동일 | |||
x = x + 1; | |||
z = x; | |||
//------------------- | |||
int x = 10; | |||
int z; | |||
z = x++; | |||
// 위 코드는 아래와 동일 | |||
z = x; | |||
x = x + 1; | |||
//------------------ | |||
int x = 10; | |||
int z; | |||
z = --x; | |||
// 위 코드는 아래와 동일 | |||
x = x - 1; | |||
z = x; | |||
//------------------- | |||
int x = 10; | |||
int z; | |||
z = x--; | |||
// 위 코드는 아래와 동일 | |||
z = x; | |||
x = x - 1; | |||
</syntaxhighlight> | |||
=== 논리 부정 연산자 ! === | |||
<syntaxhighlight lang="java"> | |||
boolean play = true; | |||
play = !play; | |||
</syntaxhighlight> | |||
=== 비트 반전 연산자 ~ === | |||
<syntaxhighlight lang="java"> | |||
byte v1 = 10; // 00001010 | |||
byte v2 = ~v1; // 오류. 정수 종류의 연산은 자동으로 int로 변환됨 | |||
int i2 = ~v1; // OK. 11111111 11111111 11111111 11110101 | |||
int i3 = ~v1 + 1; // -10 (2의 보수) | |||
System.out.println( Integer.toBinaryString(i3) ); | |||
</syntaxhighlight> | |||
== 조건문 == | == 조건문 == |
Revision as of 20:23, 19 July 2022
연산자
연산자와 연산식
연산자 종류 | 연산자 | 피연산자 수 | 산출값 | 기능 설명 | 예 |
---|---|---|---|---|---|
산술 | +, -, *, /, % | 이항 | 숫자 | 사칙연산 및 나머지 연산 | 2 + 3 |
부호 | +, - | 단항 | 숫자 | 음수와 양수의 부호 | -2 |
문자열 | + | 이항 | 문자열 | 두 문자열을 연결 | "abc" + "def" |
대입 | =, +=, -=, *=, /=, %=, &= ^=, !=, <<=, >>=, >>>= |
이항 | 다양 | 우변의 값을 좌변의 변수에 대입 | i += 3 |
증감 | ++, -- | 단항 | 숫자 | 1만큼 증가/감소 | i++ |
비교 | ==, !=, >, <, >=, <= instanceof |
이항 | boolean | 값의 비교 | i > j |
논리 | !, &, |, &&, | | | 단항 이항 |
boolean | 논리적 NOT, AND, OR 연산 | !(a < 3), (a < 3) && (a > 1) |
조건 | (조건식) ? A : B | 삼항 | 다양 | 조건식에 따라 A 또는 B 중 하나를 선택 | a = (x > y) ? x : y |
비트 | ~, &, |, ^ | 단항 이항 |
숫자 boolean |
비트 NOT, AND, OR, XOR 연산 | ~a, a & b |
쉬프트 | >>, <<, >>> | 이항 | 숫자 | 비트를 좌측/우측으로 밀어서 이동 | a >> 3 |
연산의 방향과 우선순위
100 * 2 / 3 % 5
부호 연산자
int i1 = +100; // 부호 + (양수)
int i2 = -100; // 부호 - (음수)
double d1 = +3.14;
int x = -100;
int result1 = -x; // OK
short s1 = 100;
short s2 = -s1; // 오류. 정수 연산은 int로 바뀌기 때문
int i3 = -s1; // OK
증감 연산자(++, --)
++i;
i++;
--i;
i--;
//------------------
int x = 10;
int z;
z = ++x;
// 위 코드는 아래와 동일
x = x + 1;
z = x;
//-------------------
int x = 10;
int z;
z = x++;
// 위 코드는 아래와 동일
z = x;
x = x + 1;
//------------------
int x = 10;
int z;
z = --x;
// 위 코드는 아래와 동일
x = x - 1;
z = x;
//-------------------
int x = 10;
int z;
z = x--;
// 위 코드는 아래와 동일
z = x;
x = x - 1;
논리 부정 연산자 !
boolean play = true;
play = !play;
비트 반전 연산자 ~
byte v1 = 10; // 00001010
byte v2 = ~v1; // 오류. 정수 종류의 연산은 자동으로 int로 변환됨
int i2 = ~v1; // OK. 11111111 11111111 11111111 11110101
int i3 = ~v1 + 1; // -10 (2의 보수)
System.out.println( Integer.toBinaryString(i3) );