C#/C# 교과서

[C# 교과서] 6~9. 데이터 형식, 변수 저장, 연산자 사용하기

서니션 2022. 12. 22. 12:42
728x90
반응형

C# 7.0 버전부터는 언더스코어(_)로 문자를 사용하는 숫자 구분자를 제공하여 세 자리마다 콤마로 구분되는 긴 숫자 형태를 표현할 수 있음

int number = 1_000_000; 으로 작성하고 출력하면

1000000

 

부호 없는 정수 데이터 형식은 byte, ushort, uint, ulong

음수 값을 제공할 수 없지만 양의 정수 값을 2배로 표현 가능함


실수 데이터

double, float : 부동소수점 방식

decimal : 10진 방식 (금융 관련 프로그램 만들 때 유용)

 

decimal은 float와 double에 비해서 가장 정밀도가 높은 정확한 자료를 담을 수 있음

값 자체의 범위는 float와 double에 비해서 작지만, 소수점 28자리는 정확도가 높음

 

f는 float, d는 double, m이 decimal

C#에서 기본 소수점은 double임


null 기능

int? x = null;

숫자 형식의 변수를 선언할 때 ?(물음표) 기호를 붙이면 null 가능 형식으로 변경 됨


@ 기호로 여러 줄 문자열 저장하기

문자열 앞에 @ 기호를 붙이면 문자열 자체를 그대로 문자열에 저장함

이스케이프 시퀀스도 함께 저장함

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            string multi = @"
                안녕하세요
                방가요
            ";
            Console.WriteLine(multi);
        }
    }
}

이 때 실행하면 줄 바꿈 및 소스코드에 있는 빈 공백까지 포함하여 문자열로 저장 됨

디렉토리 경로나 자바스크립트 코드 블록, SQL 문 등 여러 줄에 걸쳐 작성할 내용은 @기호를 앞에 붙여 문자열 하나로 인식하게 할 수 있음


문자열 보간법

문자열을 묶을 때 편리하게 사용

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            string hi = "hihi";
            //Console.WriteLine("{0}",hi);
            Console.WriteLine($"{hi} 안녕");
        }
    }
}

{0},{1] 형태의 자리 표시자 대신 사용

이때 문자열 앞에는 $가 있어야 사용 가능함


String.Format() 메서드로 문자열 묶기

Console.WriteLine() 메서드 처럼 순서대로 뒤에서 오는 문자열을 채워 문자열로 반환

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            string msg = string.Format("{0}아, {1}", "아","안녕");
            Console.WriteLine(msg);
        }
    }
}

닷넷 데이터 형식

System.Char

System.String

System.Boolean

변수를 선언하는 방식은 기존과 동일함


래퍼 형식

닷넷 데이터 형식을 다른 말로 래퍼 형식이라고도 함

래퍼 형식은 int, string같은 기본 형식을 클래스 또는 구조체로 감싼 닷넷 데이터 형식을 의미

Int32 number = 1234;

String str = “안녕”;


문자열 입력 관련 메소드

  • Console.ReadLine() : 콘솔에서 한 줄을 입력받음. 또 콘솔 앱 프로그램에는 현재 시점에서 잠시 멈추는 기능이 있어 엔터를 누를 때까지 대기
  • Console.Read() : 콘솔에서 한 문자를 정수로 입력받음.
  • Console.ReadKey() : 콘솔에서 다음 문자나 사용자가 누른 기능 키를 가져옴

콘솔에서 입력한 값을 그대로 출력하려면

Console.WriteLine(Console.ReadLine());

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("이름이 무엇이냐");
            string name = Console.ReadLine();
            Console.WriteLine("제 이름은 {0}입니다.", name);;
        }
    }
}

Convert 클래스의 주요 메서드

  • Convert.ToString() : 숫자 데이터 형식을 문자열로 변경
  • Convert.ToInt32() : 숫자 데이터 형식을 정수 형식으로 변경, int.Parse()로 대체 가능
  • Convert.ToDouble() : 숫자 데이터 형식을 실수 형식으로 변경, double.Parse()로 대체 가능
  • Convert.ToChar() : 입력받은 숫자 또는 문자열 하나를 문자로 변경

이진수 다루기

PadLeft() 메소드를 사용해서 8칸을 기준으로 이진수 문자열을 출력하고 앞부분은 0으로 채움

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Convert.ToString(10,2));
            Console.WriteLine(Convert.ToString(5,2));

            // PadLeft() 메소드 사용
            Console.WriteLine(Convert.ToString(5,2).PadLeft(4,'0'));

            byte x = 10; // 0000 1010
            Console.WriteLine(
                $"십진수 : {x} -> 이진수 : {Convert.ToString(x,2).PadLeft(8,'0')}"
            );
        }
    }
}

var 키워드로 암시적 형식화된 로컬 변수 만들기

C#에서 var는 매우 강력한 형식

var로 선언된 변수에 저장되는 값을 자동으로 추론해서 적당한 형식으로 변환 → 형식 추론

 

int number = 1234; // 명시적으로 형식화

var number = 1234; // 암시적으로 형식화

 

암시적으로 형식화한 변수의 데이터 타입을 알고 싶을 때는 GetType() 메소드 사용

number.GetType();

[System.Int32]


변수의 기본값을 default 키워드로 설정

C#에서 기본으로 제공하는 값으로 초기화하고 싶다면 다음과 같이 default 키워드를 사용

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = default;
            double d = default;
            char c = default;
            string s = default;

            Console.WriteLine($"[{i}],[{d}],[{c}],[{s}]");
            Console.WriteLine($"[{i}],[{d}],[{c==Char.MinValue}],[{s==null}]");
        }
    }
}

출력값 >

[0],[0],[],[] [0],[0],[True],[True]


단항 연산자

+연산자 : 특정 정수형 변수 값을 그대로 출력. 사실상 특정 기능 없음.

-연산자 : 특정 정수형 변수 값을 음수로 변경하여 출력. 음수 값이 들어 있다면 양수로 변환하여 출력.


변환 연산자

() 괄호 기호를 사용하여 특정 값을 원하는 데이터 형식으로 변환할 수 있다

int number = (int)3.14;

Console.WriteLine(number);

3


문자열 연결 연산자

+로 문자열 연결이 가능하다

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello" + "World");
        }
    }
}
728x90
반응형