코드
: 하나의 정수를 입력 받고 그 정수에 100을 더해서 출력한다.
: 명령문은 1. 변수선언, 2. 로직, 3.출력 순으로 구성되어 있다.
: Console.ReadLine() 은 데이터 값을 입력하기 위해 선언한다.
연습 ) 나이구하는 프로그램
문자형
문자에서는 ‘a’ 혹은 ‘ㄱ’을 그대로 선언되지만, 문자열에서는 “가”뒤에 \0이 포함되어 있다.
문자를 선언할 때 보통 ‘char’를 사용, 문자열을 사용할 시 string을 사용한다.
문자열은 값이 텍스트인 String 형식의 개체입니다. 내부적으로 텍스트는 Char 개체의 순차적 읽기 전용 컬렉션으로 저장됩니다. C# 문자열의 끝에 null 종료 문자가 없으므로 C# 문자열에는 포함된 null 문자('\0')를 여러 개 사용할 수 있습니다. 문자열의 Length 속성은 유니코드 문자 수가 아닌 포함된 Char 개체 수를 나타냅니다. 문자열에서 개별 유니코드 코드 포인트에 액세스하려면 StringInfo 개체를 사용합니다.
Object 형식
- Object 는 물건, 객체라는 뜻의 영어 단어입니다. 즉, object 형식은 어떤 물건(데이터)이든지 다룰 수 있는 데이터 형식이라 말할 수 있다.
- Object 형식은 ‘상속’의 효과를 가지고 있습니다. 상속은 부모 데이터 형식의 유산을 자신이 물려받는 것을 말합니다. 부모로부터 데이터와 메소드를 물려받은 자식은 부모와 똑같이 동작할 수 있습니다. 이런 효과 덕에 컴파일러는 자식을 부모로 간주할 수 있게 된다.
- C#은 모든 데이터를 다룰 수 있도록 하기 위해 특별한 조치를 해놓았다. 모든 데이터 형식(기본 데이터 형식뿐 아니라 모든 복합 데이터 형식, 심지어 프로그래머들이 만드는 데이터 형식마저도)이 자동으로 object형식으로부터 상속받게 한 것입니다. 다시 말해서 object형식이 모든 데이터 형식의 조상이 된 것다.
박싱(Boxing) 과 언박싱(Unboxing)
- Object 형식은 참조 형식이기 때문에 힙(HIP)에 데이터를 할당합니다. INT 나 DOUBLE 형식은 값 형식이기 때문 에 스택(STACK)에 데이터를 할당한다.
- Object 형식은 값 형식의 데이터를 힙에 할당하기 위한 박싱(Boxing)기능을 제공한다.
- Object 형식에 값 형식의 데이터를 할당하려는 시도가 이루어지면 object 형식은 박싱을 수행해서 해당 데이터 를 힙에 할당한다. 간단히 말해서 상자로 포장한다고 생각하면 된다.
- 박싱되어 있는 값을 꺼내어 값 형식 변수에 저장하는 과정을 ‘언박싱’이라 한다.
크기가 서로 다른 부동 소수점 형식 사이의 변환
- 부동 소수점 형식의 특성상 오버플로우가 존재하지 않기 때문에 정수 형식끼리의 변환에서 일어났던 일은 일어 나지 않습니다.
- Float 나 double은 소수를 이진수로 메모리에 보관한다. 이것을 다른 형식으로 변환하려면 10진수로 복원한 후 다시 이진수로 변환해서 기록하게 된다.
부호 있는 정수 형식과 부호 없는 정수 형식 사이의 변환
부동 소수점 형식과 정수 형식 사이의 변환
- 부동 소수점 형식의 변수를 정수 형식으로 변환하려면 데이터에서 소수점 아래는 버리고 소수점 위의 값만 남긴 다.
- 0.1을 정수 형식으로 변환하면 0이 되지만 0.9도 정수 형식으로 변환 시 0이 된다.
- 반올림과 같은 자비는 이 둘의 형식 변환에서는 찾아 볼 수 없다.
문자열을 숫자로, 숫자를 문자열로
- C#은 정수 계열 형식, 부동 소수점 gudtlra hen에게 parse()라는 메소드가 있다. 이 메소드에 숫자로 변환할 문자 열을 넘기면 숫자로 변환해준다.
- C#은 숫자 데이터 형식을 문자열로 바꾸는 Tostring()메소드를 자신이 갖고 있는 숫자를 문자열로 변환할 수 있 도록 재정의(Override)를 한다. Tostring()메소드를 호출하는 것만으로 숫자로부터 문자열을 얻어 낼 수 있다.
상수와 열거 형식 [ Const() ]
- 변수는 그 이름의 뜻처럼, 담고 있는 데이터를 얼마든지 변경할 수 있는 메모리 공간이다.
- 상수의 선언은 변수의 선언과 비슷하다.
- 다만 데이터 형식 앞에 CONST() 키워드가 위치하고 상수가 가져야 하는 데이터를 반드시 대입해줘야 하는 점 이 다를 뿐입니다. 상수는 변수와 똑같이 사용 가능하다. 단, 데이터를 변경할 수는 없다.
NULLABLE 형식
- Int 형식의 변수를 선언하면 4바이트의 메모리가 할당된다. C#컴파일러는 이 메모리 공간에 반드시 어떤 값이 든 넣도록 강제한다. 원하는 대로 되지 않는다면 c#컴파일러는 우리에게 실행파일을 열어주지 않는다. 프로그래 밍을 하다보면 어떤 값도 가지지 않는 변수가 필요할 때가 가끔 있다.
- 0이 아닌 비어있는 변수, 즉 null 상태인 변수
- 변수에게 할당된 메모리 공간을 비워둘 수 있도록 Nullable 형식을 사용하면 된다.
VAR : 데이터 형식을 알아서 파악
- VAR 키워드는 약한 형식 검사를 하는 언어의 편리함 지원
- 단, VAR 키워드를 이용해서 변수를 선언하려면 반드시 선언과 동시에 초기화
- VAR은 지역변수로 사용 가능 : 클래스의 필드를 선언할 때는 반드시 명시적 형식을 선언해야한다. 생성자라고 하는 특수한 메소드에서 초기화를 하는 경우가 대부분이기 때문이다. VAR 키워드로 필드를 선언하면 컴파일러 가 무슨 형식인지 파악할 길이 없다.
- 지역 변수란 코드 블록 안에서 선언되는 변수를 말한다.
분기문 [ Branching Satement ]
: 프로그램의 흐름을 조건에 따라 여러 갈래로 나누는 흐름 제어 구문입니다.
- If, else, 그리고 else if
: if 문에서 사용하는 조건식은 true 또는 false 값을 가지는 bool 형식이다.
- IF문 중첩해서 사용하기
: 분기문이나 반복문 같은 흐름 제어문은 또 다른 흐름 제어문을 중첩해서 사용 가능
: 중첩[Nesting]
- Switch 문
: 조건식의 결과가 가질 수 있는 다양한 경우를 한번에 평가하고 프로그램의 흐름을 가를 때 사용합니다.
: swithc문에 사용되는 조건식은 정수 형식과 문자열 형식 두 가지만 지원합니다.
반복문[Loop Statement]
: 특정 조건을 만족하는 동안 코드 또는 코드 블록을 계속해서 실행하도록 하는 문장이다.
n While
n Do while
n For
n Foreach
while 문
'Programming > C#' 카테고리의 다른 글
C#_4 (0) | 2020.06.04 |
---|---|
c#_3 (0) | 2020.06.04 |
c# 간단 연습 7개 (0) | 2020.06.03 |
c# : 100이하 정수 중 3과7의 배수 동시 출력, 마름모 (0) | 2020.05.29 |
c#_1 (0) | 2020.05.29 |