데이터 형식(Data Types):
데이터의 '유형'과 '크기'를 지정
1. 기본 데이터 형식 (값 형식)
- 정수형식 (int,byte ..etc)
- 부동 소수형식 (float, double, demical)
2. 복합 데이터 형식
- 클래스
- 구조체(값 형식)
- 인터페이스
스택(Stack):
데이터를 쌓아 올리는 구조의 메모리
쌓인 순서의 역순으로 필요 없는 데이터를 자동으로 제거(자동메모리) => LIFO(Last In First Out)
힙(Heap):
자유롭게 데이터를 저장할 수 있는 메모리
별명 : 자유 저장소
값 형식(Value Type):
메모리에 값을 담는 형식
스택에 할당
기본 데이터 형식과 구조체가 여기에 해당됨
참조형식(Reference Type):
메모리에 다른 변수의 "주소를 담는" 데이터 형식
힙에 할당
기본 데이터 형식(Primitive Types)
수 형식(정수 형식, 부동 소수점 형식)
논리 형식
문자열 형식
object 형식
복합데이터 형식 : 기본 데이터 형식을 바탕으로 만들어짐
박싱 : 값 형식을 object형식에 담아 힙에 올리기
언박싱 : 힙에 올라가 있는 데이터를 object에서 꺼내 값 형식으로 옮기기
변수 : 변경이 가능한 수
상수 : 항상 최초의 상태를 유지하는 수 -> 변경하려는 시도시 컴파일 에러
열거형식 : 하나의 이름 아래 묶인 상수들의 집합
=> enum키워드 사용
상수 선언시 ex) enum dia{yes} -> dia.yes;
var키워드 - 컴파일러가 자동으로 형식을 추론
ex) var a = 3; // a는 int 형식
주의 : "지역변수 안"에서만 사용가능(메소드 안에서만 ) + 클래스, 구조체 사용불가
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20240222
{
internal class Program
{
static void Main(string[] args)
{
//변수(Variables)에 대한 예제 문제:
//1-1. 특정 프로그램에서 사용자의 이름을 입력받아 변수에 저장하고, 그 이름을 환영하는 메시지를 출력하는 프로그램을 작성하세요.
//string a = "예준";
//Console.WriteLine($"어서오세요 {a}");
//Console.WriteLine("어서오세요 {0}", a);
//2-2. 특정 도시의 현재 온도를 나타내는 변수를 만들고, 이 변수의 값을 5도 증가시킨 후 새로운 온도를 출력하는 프로그램을 작성하세요.
//int temp = 24;
//int now = temp + 5;
//Console.WriteLine($"현재 온도는 {now}도 입니다");
//3-3. 사용자로부터 두 개의 숫자를 입력받아 변수에 저장하고, 이 두 숫자를 더한 결과를 출력하는 프로그램을 작성하세요.
//int a = 10;
//int b = 20;
//Console.WriteLine(a + b);
//상수(Constants)에 대한 예제 문제:
//2-1. 원주율을 상수로 선언하여 반지름이 5인 원의 넓이를 계산하여 출력하는 프로그램을 작성하세요.
//float pi = 3.14f;
//int r = 5; // => float 과 int 의 곱이 된다.
//float size = pi * pi * r;
//Console.WriteLine(size);
//2-2. 세금 비율을 0.1로 상수로 선언하고, 사용자로부터 어떤 상품의 가격을 입력받아 세금을 계산하여 총 가격을 출력하는 프로그램을 작성하세요.
//float rate = 0.1f;
//float price = 50.6f;
//float total = rate * price;
//Console.WriteLine(total); //=> 5.06
//2-3. 1년에는 몇 개의 달이 있는지를 상수로 선언하고, 이 값을 사용하여 1년이 몇 개의 주가 있는지를 출력하는 프로그램을 작성하세요.
//int CountOfMonth = 12;
//int day = 365;
//float CountOfWeek = day / CountOfMonth;
//Console.WriteLine(CountOfWeek);
// => 인트형끼리 나누면 소수점 자리가 Truncate을 하지 않아도 된다.
//float CountOfMonth = 12f;
//float day = 365f;
////float CountOfWeek = Math.Truncate(day / CountOfMonth); ==> 오류
//float CountOfWeek = day / CountOfMonth;
//Console.WriteLine(Math.Truncate(CountOfWeek)); // 30
}
}
}
'낙서장 > C#' 카테고리의 다른 글
[C#] 메서드 오버로딩 (0) | 2024.06.02 |
---|---|
virtual ,override, base (2) | 2024.03.08 |
상속과 다형성 (1) | 2024.03.08 |
흐름 제어 (1) | 2024.02.26 |
데이터를 가공하는 연산자 (0) | 2024.02.25 |