연산자(Visual C# Express)
업데이트: 2007년 11월
C# 연산자의 구문은 다른 C 방식의 프로그래밍 언어와 비슷합니다. 연산자는 계산을 수행하거나, 변수에 값을 할당하거나, 같음 또는 같지 않음 여부를 테스트하거나 그 밖의 다른 작업을 수행하는 데 사용됩니다.
다음 단원에는 가장 일반적으로 사용되는 일부 C# 연산자의 목록이 나와 있습니다. 모든 연산자의 전체 목록을 보려면 C# 연산자를 참조하십시오.
대입 및 같음 연산자
C#에서 등호(=) 연산자는 C 및 C++에서와 같은 기능을 합니다.
연산자 |
용도 |
---|---|
= |
값을 대입합니다. |
== |
같음 여부를 테스트합니다. |
예제
int x = 100;
if (x == 100)
{
System.Console.WriteLine("X is equal to 100");
}
수치 및 논리 연산자
다음은 우선 순위에 따라 표시한 기본 수치 연산자 목록입니다. 다른 순서로 연산을 수행하려면 괄호를 사용합니다.
연산자 |
용도 |
---|---|
*, /, % |
곱하기, 나누기, 나머지 연산 |
+, - |
더하기, 빼기 |
& |
논리 AND |
^ |
논리 XOR 연산자 |
| |
논리 OR |
예제
int x = 1;
int y = x + 10 * 100; // multiplication first y = 1001
int z = (x + 10) * 100; // addition first z = 1100
증가 및 감소 연산자
다음 예제에서처럼 후위 및 전위 연산자 같은 C/C++ 스타일의 간단한 연산 표시 방식이 지원됩니다.
연산자 |
용도 |
---|---|
v++ |
변수를 1만큼 늘립니다. |
v+=n |
변수를 n만큼 늘립니다. |
v*=n |
변수에 n을 곱합니다. |
v-=n |
변수 v에서 n을 뺍니다. |
예제
int x = 0;
int y = x++; // x is 1, y is 0
System.Console.WriteLine("{0} {1}", x, y);
int z = ++x; // x is 2, z is 2
System.Console.WriteLine("{0} {1}", x, z);
관계형 연산자
다음 연산자는 두 값을 비교하고 그 결과를 bool로 반환합니다.
연산자 |
용도 |
---|---|
== |
같음 |
!= |
같지 않음 |
> |
보다 큼 |
< |
보다 작음 |
>= |
크거나 같음 |
<= |
작거나 같음 |
예제
int x = int.Parse(System.Console.ReadLine());
if (x > 100)
{
System.Console.WriteLine("X is greater than 100");
}
논리 조건 연산자
논리 연산자는 여러 절을 결합하여 더 융통성 있는 조건문을 만드는 데 사용합니다.
연산자 |
용도 |
---|---|
&& |
조건부 논리 AND |
|| |
조건부 논리 OR |
! |
조건부 부정 |
예제
int x = int.Parse(System.Console.ReadLine());
if ((x >= 100) && (x <= 200))
{
System.Console.WriteLine("X is between 100 and 200");
}
고급 수치 연산자
삼각법 등의 고급 수치 연산을 수행하려면 .NET Framework의 Math 클래스를 사용합니다. 다음 예제에서는 Sin(사인) 및 Sqrt(제곱근) 메서드와 PI 상수를 사용합니다.
예제
double d = System.Math.Sin(System.Math.PI/2);
double e = System.Math.Sqrt(144);
연산자 오버로드
C#에서는 연산자 오버로드를 지원합니다. 연산자를 오버로드하면 사용자 고유의 데이터 형식과 함께 사용할 때 더 의미 있는 연산자로 다시 정의할 수 있습니다. 다음 예제에서는 열거형으로 정의된 변수 형식에 하나의 요일을 저장하는 구조체를 만듭니다. 자세한 내용은 구조체(Visual C# Express) 및 열거형(Visual C# Express)을 참조하십시오. 더하기 연산자는 현재 요일에 날짜 정수를 더해 새 요일을 반환할 수 있도록 오버로드됩니다. 예를 들어, 일요일에 하루를 더하면 월요일이 반환됩니다.
예제
using System;
// Define an DayOfWeek data type
enum DayOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
// Define a struct to store the methods and operators
struct Day
{
private DayOfWeek day;
// The constructor for the struct
public Day(DayOfWeek initialDay)
{
day = initialDay;
}
// The overloaded + operator
public static Day operator +(Day lhs, int rhs)
{
int intDay = (int)lhs.day;
return new Day((DayOfWeek)((intDay + rhs) % 7));
}
// An overloaded ToString method
public override string ToString()
{
return day.ToString();
}
}
public class Program
{
static void Main()
{
// Create a new Days object called "today"
Day today = new Day(DayOfWeek.Sunday);
Console.WriteLine(today.ToString());
today = today + 1;
Console.WriteLine(today.ToString());
today = today + 14;
Console.WriteLine(today.ToString());
}
}