- 문자형 기본 타입
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Configuration;
using System.Text;
using System.Threading.Tasks;
namespace _20200522_001
{
class Program
{
static void Main(string[] args)
{
char ch1; //탭문자를 표현
ch1 = '\uAC00'; //유니코드 '가' 출력됨.
Console.WriteLine(ch1);
ch1 = '\\'; // \를 두번 사용하면 \가 출력
Console.WriteLine(ch1);
string text = "Hello World"; // 문자열 을 담을수 있음.
Console.WriteLine(text);
text = "\tHello \nWorld"; // 탭키 엔터키
Console.WriteLine(text);
text = @"\tHello\nwWorld"; // @를"앞에 사용시 \를 이스케이프 시퀀스로 취급하지 않음
Console.WriteLine(text);
text = "Hello";
Console.WriteLine(text+ " " + "World");//+로 문자열 같이 출력
char ch2 = '[';
char ch3 = '\t';
char ch4 = ']';
char ch5 = '\n';
Console.Write(ch2);
Console.Write(ch3);
Console.Write(ch4);
Console.Write(ch5); // \를 사용한 탭기능. 엔터기능 사용 가능
ch1 = (char)7; // 아스키코드 BEL 들어가서 소리남
Console.Write(ch1);
}
}
}
- char형은 2바이트 수용 가능
- char형에 \u와 뒤에 유니코드 문자 번호를 16진수로 명시해서 값을 입력하면 출력할때 유니코드 문자로 나온다.
- BEL 명령이 아스키코드 7번에 있기 때문에 7을 char형으로 캐스팅해서 입력하면 출력할때 알람소리가 들린다.
값을 봤는데 ' \a'가 들어가 있었음.
- string형은 입력값에 따라 메모리에 동적으로 할당된다.
- char형과 달리 string 형은 '+'연산을 지원한다. 문자열을 +를 이용해 연결할 수 있음.
- 불린(boolean)형 기본 타입
true / false 값만 담을 수 있는 자료형.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace _20200522_002
{
class Program
{
static void Main(string[] args)
{
bool isNumeric = false;
bool isNumeric2;
isNumeric2 = 7 > 6; // 대입연산자'=' 보다 7<6의 논리연산자 '>' 가 먼저 실행됨
Console.WriteLine(isNumeric);
Console.WriteLine(isNumeric2);
}
}
}
- C에서는 0, 1로도 할 수 있었는데 C#은 따로 변환을 해야 가능.
형변환
- 암시적 변환
byte b = 255; //255만 쓰면 int형 255정수값 이지만 byte도 정수를 쓰기때문에 형변환 안해도 봐줌
같은 정수형을 사용하거나 범위가 작은 데이터에서 그 값을 포함하는 큰 데이터로 형변환 하는건 대충 봐준다.
물론 그 반대는 암시적 변환이 불가능하다.
- 명시적 변환
ushort u = 65;
char c = (char)u; // '65'를 char형으로 변환, 아스키코드 65번 값은 'A'
Console.WriteLine(c);// A 출력
int n = 40000;
short s = (short)n; // +32,767 까지 밖에 저장을 못하기 때문에 -값이 출력
Console.WriteLine(s); // -25536 출력
각 타입에 맞지 않는 값을 입력할때는 (변환하려는 타입)을 써서 형변화 시켜야함
저걸 써도 저장하려는 값이 저장범위를 넘어갈경우 제대로된 값을 저장할 수 없음.
기본 문법 요소
- 예약어
sbyte, byte, short, ushort, int, uint, long, ulong // 정수형
float, double, decimal // 실수형
char, string // 문자형
bool // 논리형
C#에서 문법표현을 위해 미리 예약된 단어들
- 식별자
예약어 뒤에 자유롭게 지었던 이름이 식별자. 대충짓거나 한글, \를 사용해서 지어서 못알아 보게 만들면 잘릴위험있음
보통은 명명규칙을 따라서 지음.
- 리터럴
소스코드에 포함된 값, 보통 식별자 쓰고 대입연산자 '=' 오른쪽에 나오는 값들을 의미함.
- 변수
식별자 = 변수명, 저장소가 메모리에 할당돼 값을 담아 놓을 수 있는 역할을 함
- 상수
const int n=5;
n = 10; // 컴파일 오류뜸
상수(constant), 한번 값을 입력하면 그 이후로 다른 값을 대입할 수 없음.
타입앞에 const를 붙여 사용
- 문장부호와 연산자
{,},;,=,+,-,*,/ 등등
';' 는 컴파일러에게 끝을 알리는 문장부호
'=' 는 R_Value를 L_Value에 대입함
'+,-,*,/,' 산술연산자로 정수형, 실수형 데이터에 사용가능하다.
콘솔창에서 값 입력받기 와 {n}을 이용해 변수 출력
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _2020522_003
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("아무글자나 쓰세요");
string input = Console.ReadLine(); // 글자를 입력받아서 input 변수에 넣어준다.
Console.WriteLine("입력받았습니다");
Console.Write("입력하신 내용은 ["+input+"]입니다\n"); // +를 이용해 Write 한개로 출력
Console.WriteLine("입력하신 내용은 [{0}]입니다", input); // {n}을 이용해 출력
int iNum = 100;
int iNum2 = 200;
Console.Write("내장된 자료의 값은 [{0}][{1}]입니다.\n", iNum, iNum2); // 중괄호에 숫자는 뒤에 나오는 변수의 순서를 써논것
}
}
}
'컴퓨터 > C#' 카테고리의 다른 글
[C#] 반복문 (0) | 2020.05.26 |
---|---|
[C#] 연산자 (0) | 2020.05.26 |
[C#] 형변환, 산술연산자( /, %), if문, switch문 (0) | 2020.05.25 |
[C#] 보수법과 자료형 (0) | 2020.05.22 |
[C#] 비주얼 스튜디오 2019 설치와 "지옥으로 키티" 출력하기 (0) | 2020.05.21 |