C#에서 제공하는 연산자
산술 연산자
using System;
namespace arithmaticoperators
{
class MainAp
{
static void Main(string[] args)
{
int a = 111 + 222;
Console.WriteLine($"a : {a}");
int b = a - 100;
Console.WriteLine($"b : {b}");
int c = b * 10;
Console.WriteLine($"c : {c}");
double d = c / 6.3;
Console.WriteLine($"d : {d}");
Console.WriteLine($"22/7 = {22 / 7}({22 % 7})");
}
}
}
<실행결과>
관계연산자
조건 연산자
조건 연산자 "?:"은특이하게도 피연산자가 세 개나됩니다. 이 피연산자들은 각각 다음 과같습니다.
using System;
namespace Conditionaloperator
{
class Mainapp
{
static void Main(string[] args)
{
string result = (10 % 2) == 0 ? "짝수" : "홀수";
Console.WriteLine(result);
}
}
}
<실행결과>
null 조건부 연산자
using System.Collections;
using static System.Console;
namespace NullConditionalOperator
{
class MainApp
{
static void Main(string[] args)
{
ArrayList a = null;
a?.Add("야구"); // a가 null을 반환하므로 Add() 메서드는 호출되지 않음
a?.Add("축구");
WriteLine($"Count : {a?.Count}"); // a가 null을 반환하므로 'Count' 외에는 아무것도 출력되지 않습니다.
WriteLine($"a[0] : {a?[0]}");
WriteLine($"a[1] : {a?[1]}");
a = new ArrayList(); // a는 이제 더 이상 null이 아닙니다.
a?.Add("야구");
a?.Add("축구");
WriteLine($"Count : {a?.Count}");
WriteLine($"a[0] : {a?[0]}");
WriteLine($"a[1] : {a?[1]}");
}
}
}
<실행결과>
할당 연산자
null 병합 연산자
null 병합 연산자 ??는 null 조건부 연산자처 럼 프로그램에서 종종 필요한 변수/객체의 null 검사 를 간결하게 만들어주는 역할을 합니다. ?? 연산지는 두 개의 피연산자를 그대로 받아들이고 왼쪽 피연산 자가 null인지 평가합니다.
null 병합 연산자 `??`는 null 조건부 연산자처럼 프로그램에서 종종 필요한 변수/객체의 null 검사를 간결하게 만들어주는 역할을 합니다. `??` 연산자는 두 개의 피연산자를 받으며, 왼쪽 피연산자가 null인지 평가합니다. 평가 결과가 null이 아닌 것으로 나타나면 왼쪽 피연산자를 그대로 반환하고, 만약 왼쪽 피연산자가 null인 것으로 평가되면 오른쪽 피연산자를 반환합니다(우연일까요?).
C#에서는 null과 관련된 형식과 연산자에 `?` 기호가 들어갑니다. Nullable 형식을 선언할 때도 ?가 사용되고, null 조건부 연산자 ?.와 ??로 모두 시작합니다. 이번에 살펴볼 null 병합 연산자는 물음표 기호 두 개로 이루어진 ??입니다.
using System;
namespace NullCoalescing
{
class MainApp
{
static void Main(string[] args)
{
int? num = null;
Console.WriteLine($"{num ?? 0}"); // num이 null이므로 0을 출력
num = 99;
Console.WriteLine($"{num ?? 0}"); // num이 99이므로 99를 출력
string str = null;
Console.WriteLine($"{str ?? "Default"}"); // str이 null이므로 "Default"를 출력
str = "Specific";
Console.WriteLine($"{str ?? "Default"}"); // str이 "Specific"이므로 "Specific"를 출력
}
}
}
<실행결과>
연산자의 우선순위
'C#' 카테고리의 다른 글
클래스 (0) | 2024.10.30 |
---|---|
메소드로 코드 간추리기 (0) | 2024.10.30 |
코드의 흐름 제어하기 (1) | 2024.10.30 |
#데이터 보관하기 (0) | 2024.10.29 |
C# 프로그램 만들기 (0) | 2024.10.29 |
댓글