C#_연산자
연산자
-연산을 할 시 연산의 순서에 유의해야 한다.
-참(True)와 거짓(False) 프로그램에서 참은 1이고 거짓은 0이다.
■수의 연산에 사용되는 연산자
연산자기능사용법의미+ (플러스)- (마이너스)* (애프터리스크)/ (슬래시)% (퍼센트)= (등호)
연산자 | 기능 | 사용법 | 의미 |
+ (플러스) | + (덧셈) | a = b + c | b와 c를 더한값을 a에 대입 |
- (마이너스) | - (뺄셈) | a = b - c | b에서 c를 뺀 값을 a에 대입 |
* (애프터리스크) | * (곱셈) | a = b * c | b와 c를 곱한 값을 a에 대입 |
/ (슬래시) | ➗나눗셈 | a = b / c | b를 c로 나눈값을 a에 대입 (c가 0일때에는 오류) |
% (퍼센트) | …(나머지) | a = b % c | b를 c로 나눈 나머지를 a에 대입 (정수형과 실수형에 모두 사용 가능) |
= (등호) | =(대입) | a = b | b의 값을 a에 대입 |
코딩 ex)
using System;
class Calculation
{
{
Console.WriteLine("5+5는"+(5+5)+"입니다.");
Console.WriteLine("5-5는"+(5-5)+"입니다.");
Console.WriteLine("5x5는"+(5*5)+"입니다.");
Console.WriteLine("5➗5는"+(5/5)+"입니다.");
Console.WriteLine("5➗3의 나머지는 "+5%3+"입니다.");
}
}
/*출력결과
5+5는 10입니다.
5-5는 0입니다.
5x5는 25입니다.
5➗5는 1입니다.
5➗3의 나머지는 2입니다.
*/
■대입연산자
ex) a= a+2; // a의 값에 2를 더한 것
또 다른 표현으로 a +=2;
연산자 | 기능 | 사용법 | 의미 |
+= | 더해서 대입 | a += b | a+b의 결과를 a에 대입(a=a+b 와 같음) |
-= | 빼서 대입 | a -= b | a-b의 결과를 a에 대입(a=a-b 와 같음) |
*= | 곱해서 대입 | a *= b | a*b의 결과를 a에 대입(a=a*b 와 같음) |
/= | 나누어서 대입 | a /= b | a/b의 결과를 a에 대입(a=a/b 와 같음) |
%= | 나머지를 대입 | a %= b | a%b의 결과를 a에 대입(a=a%b 와 같음) |
코딩 ex)
using System;
class Plus
{
static void Main()
{
int a = 90;
a += 10 // a = a + 10; 으로 기술해도됨
Console.WriteLine("90 에 10 을 더하면" + a + "입니다.");
}
}
/*출력결과
90에 10을 더하면 100 입니다.
*/
■산술연산자
-증가(덧셈) 연산자, 감소(뺄셈) 연산자는 정수형 변수에서 값을 1 증가 또는 1 감소시킬 경우 사용함
연산자 | 이름 | 기능 | 사용법 | 의미 |
++ | 증가 연산자 | 변수 값을 1증가시킴 | a++또는 ++a | a의 값을 1증가시킴 |
— | 감소 연산자 | 변수 값을 1감소시킴 | a—또는—a | a의 값을 1감소시킴 |
코딩 ex)
System
class One
{
static void Main()
{
int a = 1;
Console.WriteLine("시작은" + a + "입니다.");
a++;
Console.WriteLine("1증가시켜" + a + "가 되었습니다.");
a--;
Console.WriteLine("1감소시켜" + a + "로 돌아왔습니다.");
}
}
/*출력결과
시작은 1입니다.
1증가시켜 2가 되었습니다.
1감소시켜 1로 돌아왔습니다.
*/
** a++와 ++a의 차이점**
++a,—a 전치 / a++, a— 후치라고 표현한다.
전치는 변수의 참조보다 앞에 연산이 수행되고,
후치는 변수의 참조보다 뒤에 연산이 수행된다.
ex)
int x, a=1;
x= ++a
a에 1을 더한 후 x에 값을 대입합니다. → x의 값은 2가 됩니다.
int x, a=1;
x = a++;
x에 값을 대입한 후 a에 1을 더합니다 → x의 값은 1이 됩니다.
코딩 ex)
using System;
class Position
{
static void Main()
{
int a = 1;
int b = 1;
Console.WriteLine("전치라면 a는" + ++a + "가 됩니다.")
Console.WriteLine("전치라면 b는" + b++ + "가 됩니다.")
}
}
/*출력결과
전치라면 a는 2가 됩니다.
후치라면 b는 1이 됩ㅂ니다
*/
■비교 연산자
C#에서 변수의 값이나 수치를 비교하여 조건식을 만들고 그 결과에 따라 처리를 다르게 할 수 있다.
이때 사용하는 연산자를 비교 연산자 라고 한다.
조건이 성립할 경우 참(true) 트루 값을 넘겨주고,
조건이 성립하지 않을 경우 거짓(false) 폴스 값을 넘겨준다.
연산자 기능 사용법 의미
연산자 | 기능 | 사용법 | 의미 |
== | =(같음) | a == b | a 와 b 는 같다 |
< | <(보다 작음) | a < b | a 는 b 보다 작다 |
> | >(보다 큼) | a > b | a 는 b 보다 크다 |
< = | < =(이하) | a < = b | a 는 b 보다 작거나 같다 |
> = | > =(이상) | a > = b | a 는 b 보다 크거나 같다 |
! = | ! = (같지않음) | a ! = b | a 와 b 는 같지 않다 |
>>> 두 연산 기호가 하나의 연산기호로 사용될 때는 공백등으로 구분하면 안 된다.
■논리형
bool 불이라고 표현한다. true 또는 false 중 하나의 값을 가진 변수형이다.
조건식이나 대입식은 논리형의 값을 가지고 있으므로 bool형을 대입할 수 있다.
bool t = ( a == b);
a==b는 조건이고 t의 값은 a와 b가 같으면 true, 같지 않으면 false이다.
코딩 ex)
using System;
class Compare
{
static void Main()
{
int a = 10, b = 20;
bool c, d, e;
c = a < b;
d = a > b;
e = a == b;
Console.WriteLine("a=" + a + "b=" +b);
Console.WriteLine("a<b ... "+c);
Console.WriteLine("a>b ... "+d);
Console.WriteLine("a==b ... " +e);
}
}
/*출력결과
a=10 b=20
a<b ... True
a>b ... False
a==b ... False
*/
■조건 연산자
조건 연산자 [? :]는 조선식의 값에 따라 둘 중 하나를 선택한다. 선택 값은 수치나 문자, 변수 등을 지정할 수 있다.
bool set;
…
int a = sel? 0 : 1 ;
sel - 조건식
0 - 조건식이 true인 경우 ( : 의 왼쪽에 있는 값을 선택함)
1 - 조건이 false인 경우 ( : 의 오른쪽에 있는 값을 선택함)
코딩 ex)
using System;
class Judge
{
static void Main()
{
string right = "정답", wrong = "오답";
bool value;
value = true;
string answer = value ? right : wrong;
Console.WriteLine(answer);
value = false;
answer = value ? right : wrong;
Console.WriteLine(answer);
}
}
/*출력결과
정답
오답
*/
■논리 연산자
복수의 조건을 조합하여 더 복잡한 조건을 나타낼 때 사용하는 것이 논리 연산자이다.
연산자기능사용법의미&, && (a와 b의교집합)\,\\ (a 또는 b)! (조건 a 아닌 모든 조건)
연산자 | 기능 | 사용법 | 의미 |
&, && (a와b의교집합) | 그리고 | (a> =10 && (a<50) | a는 10이상 50 미만 |
\,\\ (a 또는 b) | 또는 | (a==1) \\ (a==100) | a는 1 또는 100이다 |
! (조건 a아닌 모든조건) | ~이(가) 아니다 | ! (a == 100) | a는 100이 아니다 |
** && , \\ 는 단락평가 연산자 - 결과에 해당하는 true 또는 false 만 평가한다.
** & , \ 는 true 또는 false 외에도 평가가 필요한지 확인한다.
논리형의 이용
-조건식은 논리형 값을 가지고 있으므로 조건식으로 bool형의 변수를 이용할 수 있다.
c 가 5 또는 9이다.
bool x = ( c = 5 ) … x는 c = 5 이면 true, c ≠ 5 이면 false
bool y = ( c = 9 ) … y는 c = 9 이면 true, c ≠ 9 이면 false
x \\ y … x = true 또는 y = true이다.
코딩 ex)
using System;
class Or
{
static void Main()
{
int a = 3, b = 4;
bool x, y;
x = (a < 0);
y = (b > 0);
Console.WriteLine((a==3) && (b==3));
Console.WriteLine(x\\y);
}
}
/*출력결과
False
Treu
*/
■연산의 우선순위
우선순위연산자 같은 순위일 때의 계산
우선순위 | 연산자 | 같은 순위일 때의 계산 방향 |
1 | [ ].(마침표, 대상의 구성원을 선택) ()++(후치) —(후치) checked unchecked new sizeof typeof |
|
2 | ++(전치) —(전치) +(부호) - 부호 ~ ! | ← |
3 | * / % | → |
4 | + - | → |
5 | << >> | → |
6 | <> < = > = is as | → |
7 | == ! = | → |
8 | & | → |
9 | ^ | → |
10 | \ | → |
11 | && | → |
12 | \\ | → |
13 | ?: | ← |
14 | = += -= *= /= %= >> = << = >>> = &= ^= \= | ← |