Ch04. 데이터를 가공하는 연산자

2020. 1. 7. 21:43C# 언어/이것이 C# 이다. 책정리

반응형

 

 

 

 

ch04 '연산자 다루기' 입니다

데이터를 가공하는 연산자에 대해 배웁니다.

 

'이것이 C#이다' 교재를 바탕으로 정리했습니다.

 

이전 정리글


ㅇ 산술 연산자

 

연산자설명지원 형식
+양쪽 연산자를 더합니다.모든 수치 데이터 형식
-왼쪽에서 오른쪽 연산자를 차감합니다.모든 수치 데이터 형식
*양쪽 연산자를 곱합니다.모든 수치 데이터 형식
/왼쪽에서 오른쪽 연산자를 나눈 몫모든 수치 데이터 형식
%왼쪽에서 오른쪽 연산자를 나눈 나머지모든 수치 데이터 형식

 

 

표에 언급한 모든 연산자 이용한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
namespace ArithmaticOperators
{
    class MainApp
    {
        static void Main(string[] args)
        {
            int a = 111 + 222;
            Console.WriteLine($"a : {a}"); // 333
            int b = a - 100;
            Console.WriteLine($"b : {b}"); // 233
            int c = b * 10;
            Console.WriteLine($"c : {c}"); // 2330
            double d = c / 6.3;
            Console.WriteLine($"d : {d}"); // 369.84~~
 
            Console.WriteLine($"22 / 7 = {22 / 7}({22 % 7})"); // 3(1)
        }
    }
}

 

ㅇ 증가 연산자와 감소 연산자

연산자의 위치에 따라 방식이 달라짐

증가/감소 연산자를 변수의 뒤에 사용하면 해당 문장의 실행이 끝난 후에 변수의 값이 변경

변수의 앞에 사용하면 변수의 값을 변경한 후에 해당 문장이 실행

 

연산자이름설명지원 형식
++증가 연산자피연산자의 값을 1 증가시킴모든 수치,열거 형식
--감소 연산자피연산자의 값을 1 감소시킴모든 수치,열거 형식

 

표에 언급한 모든 연산자 이용한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
 
namespace ArithmaticOperators
{
    class MainApp
    {
        static void Main(string[] args)
        {
            int a = 10;
            Console.WriteLine(a++); // 10
            Console.WriteLine(a--); // 12
 
            Console.WriteLine(++a); // 12
            Console.WriteLine(--a); // 10
        }
    }
}

 

ㅇ 관계 연산자

두 피연산자의 사이 관계를 확인하는 연산자

 

연산자설명지원 형식
<왼쪽이 오른쪽 연산자보다 작으면 참, 아니면 거짓모든 수치 형식과 열거 형식
>왼쪽이 오른쪽 연산자보다 크면 참,    아니면 거짓모든 수치 형식과 열거 형식
<=왼쪽이 오른쪽 연산자보다 작거나 같으면 참, 아니면 거짓모든 수치 형식과 열거 형식
>=왼쪽이 오른쪽 연산자보다 크거나 같으면 참, 아니면 거짓모든 수치 형식과 열거 형식
==양쪽 연산자가 같으면 참 아니면 거짓모든 데이터 형식에 대해 사용 가능
!=왼쪽이 오른쪽 연산자와 다르면 참,      아니면 거짓모든 데이터 형식에 대해 사용가능. string와 object 형식에 대해서도 사용 가능

 

표에 언급한 모든 메소드 이용한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using static System.Console;
 
namespace ArithmaticOperators
{
    class MainApp
    {
        static void Main(string[] args)
        {
            WriteLine($"{3 > 4}"); // flase
            WriteLine($"{3 >= 4}"); // false
            WriteLine($"{3 < 4}"); // true
            WriteLine($"{3 <= 4}"); // true
            WriteLine($"{3 == 4}"); // false
            WriteLine($"{3 != 4}"); // true
        }
    }
}

 

ㅇ 논리 연산자

참과 거짓으로 이루어지는 진리값이 피연산자인 연산

 

 논리 곲

진리 값이 모두 참(True)이어야 그 결과가 참, 그 외에는 모두 거짓(False)

ABA && B
거짓거짓
거짓거짓
거짓거짓거짓

 

논리 합

진리 값이 하나라도 참(True)이면 그 결과가 참, 그 외에는 거짓(False)

ABA || B
거짓
거짓
거짓거짓거짓

 

부정 연산

진리값을 반대로 뒤집는다.

A!A
거짓
거짓

 

예제 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using static System.Console;
 
namespace p127
{
    class Program
    {
        static void Main(string[] args)
        {
            WriteLine("----------");
            WriteLine($"{1 > 0 && 4 < 5}"); // T
            WriteLine($"{1 > 0 && 4 > 5}"); // F
            WriteLine($"{1 == 0 && 4 > 5}"); // F
            WriteLine($"{1 == 0 && 4 < 5}"); // F
 
            WriteLine("----------");
            WriteLine($"{1 > 0 || 4 < 5}"); // T
            WriteLine($"{1 > 0 || 4 > 5}"); // T
            WriteLine($"{1 == 0 || 4 > 5}"); // F
            WriteLine($"{1 == 0 || 4 < 5}"); // T
 
            WriteLine("----------");
            WriteLine($"{!true}"); // F
            WriteLine($"{!false}"); // T
        }
    }
}

 

ㅇ 조건 연산자

조건 연산자의 첫 번째 변수인 조건식은 결과가 논리값이어야 함.

이 조건 식의 결과가 참이면 두 번째 매개 변수가 선택

거짓이면 세 번째 매개 변수가 선택

조건식 ? 참일_때의_값 : 거짓일_때의_값

int a = 30;
string result1 = a == 30 ? "삼십" : "삼십아님"; // result1는 "삼십"

int b = 40;
string result2 = b == 30 ? "삼십" : "삼십아님"; // result2는 "삼십아님"

 

ㅇ 널 조건부 연산자

널 조건부 연산자 ?. 는 C# 6.0에서 도입됨

객체의 멤버에 접근하기 전에 해당 객체가 null인지를 검사하여

결과가 참(null)이면 그 결과 null 반환

거짓이면 뒤에 지정된 멤버를 반환

 

예제 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using static System.Console;
using System.Collections.Generic;
using System.Collections;
 
 
namespace NullConditiona10perator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            ArrayList a = null;
            a?.Add("축구"); // a?. 이 null을 반환하므로 Add() 메소드는 호출되지 않음
            a?.Add("야구");
            WriteLine($"Count : {a?.Count}"); // Count: 이외에 아무것도 출력하지 않음
            WriteLine($"{a?[0]}");
            WriteLine($"{a?[1]}");
 
            a = new ArrayList(); // a는 이제 null이 아님
            a?.Add("축구"); 
            a?.Add("야구");
            WriteLine($"Count : {a?.Count}"); // 출력성공
            WriteLine($"{a?[0]}"); // 출력성공
            WriteLine($"{a?[1]}"); // 출력성공
 
        }
    }
}
반응형