Difference between revisions of "컴퓨터프로그래밍및실습 (2022년)/0908"

From DISLab
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) );


조건문

반복문