[C#기초] 1. 데이터형 및 문법 기초
INDEX
데이터형
- int, float, string ….
- 데이터형 뒤에 ?가 붙을 경우 nullable
- int? x = null;
- string은 뒤에 ?를 붙이지 않아도 nullable
- object : 모든 변수의 상위 클래스
타입캐스팅
int x = 3;
float y = 4.5f;
string z;
x = int.parse(y);
x = Convert.ToInt32(y);
z = y.ToString()
제어문
switch case
- 정수, 문자상수, 문자열 가능
for(;;)
- 무한반복
foreach
-
처음부터 끝까지 순차적 값을 읽음
-
읽기전용
-
ex
- foreach(데이터형 변수 in 배열명(컬렉션명)) { … }
- foreach(int x in arr) { … }
점프문
goto
,continue
,return
,break
예외처리문
- 런타임 시에 발생할 수 있는 오류
if
~else
,try
~catch
try
~ catch
~ finally
-
try
문 안에서 초기화한 변수를try
문 밖에서 사용할 수 없다 -
finally
: 예외 발생과 상관없이 항상 실행되는 구문 -
catch
-
-
System.Exception
파생 객체만 사용 -
- OverFlowException
- FormatException
- DivideByZeroException
- FileNotFountException
- IndexOutOfRangeException
- …
-
try
try { ~ } catch { ~ } finally { ~ }
try
{
//예외가 발생할 수 있는 코드
}catch (예외처리객체 e)
{
//예외처리
} finally
{
//항상 실행되는 코드
}
try
{
array[1025] = 10;
}catch (IndexOutOfRangeException e)
{
Console.WriteLine("배열 인덱스 에러 발생");
//예외처리
}
throw
-
예외 상황을 임의로 발생시키는 역할
-
System.Exception 파생된 객체만 사용
-
try문과 그 외에서 사용 가능
if(x >= num.Length)
{
throw new IndexOutOfRangeException();
}
배열
‘배열’
- 참조형 : new를 통해 생성
-
foreach사용가능
-
형식
데이터형[] 배열명;
int[] arr_name;
-
생성과 초기화
int[] array;
array = new int[] {1,2,3};
array = new int[3] {1,2,3};
array = new int[3];
int[] array = {1,2,3};
-
다차원배열 선언형식
-
-
데이터형[ , ] 배열명;
-
- 2차원배열
int[ , ] array1 = new int[2,2];
int[ , ] array1 = new int[ , ] { {1,2} , {3,4} };
-
데이터형[ , , ] 배열명;
-
- 3차원배열
int[ , , ] array2 = new int[2,2,2];
-
-
가변배열
-
데이터형[][] 배열명;
-
-
int[][] array;
-
int[][] array = new int[3][];
-
array[0] = new int[2] {1,2};
-
array[1] = new int[] {3,4,5};
-
array[2] = new int[4];
-
int[][] array = new int[][]
{
new int [] {1,2,3},
new int [] {4,5,6},
new int [] {7,8,9}
};
int[][] array = {
new int [] {1,2,3},
new int [] {4,5,6},
new int [] {7,8,9}
};
-
배열 메서드
-
-
Array.Clone()
-
- 배열 복사
int[] array1 = {1,2,3};
int[] array2 = (int[])array1.Clone();
-
-
Array.Clear()
-
-
배열 초기화
-
Array.Clear(배열,인덱스,길이)
-
Array.Clear(array,2,3);
-
- array배열의 2번째 위치로부터 3개를 0으로 초기화
-
클래스 배열
형식
class A
{
public int number;
}
A[] TestArray = new A[3];
TestArray[0] = new A();
TestArray[0].number = 12;
int result = TestArray[0].number;
배열을 함수로 전달
1차원 배열을 함수로 전달
int[] array= {1,2,3,4};
void func(int[] arr){}
func (array);
2차원 배열을 함수로 전달
string 토큰화
-
string의 토큰화
-
string str = "국어: 90 영어: 100 수학: 70";
string[] str_Element = str.Split(new char[] {''});
int kor = int.Parse(str_Element[1]);
int eng = int.Parse(str_Element[3]);
int math = int.Parse(str_Element[5]);
int total = kor + eng + math;