TIL

[TIL] 사전캠프 1일차

Hwone 2023. 7. 31. 21:02

나는 c++를 공부한 경험을 바탕으로 두 언어의 다른 부분을 중심적으로 공부하였다 

입출력과 형변환 하는게 조금 번거롭고 헷갈리지만 익숙해지면 또 잘 사용할거 같다 

 

1.입출력 

Console.Read() //문자열을 제외한 입력 방법
Console.ReadLine() //문자열 입력 방법 

Console.Write() //줄바꿈이 되지 않는 출력 방법
Console.WriteLine() //출력 이후 줄바꿈 되는 출력 방법

 

2.형변환

-문자->다른 자료형

string iStr = "10"; 
int x; 
x = int.parse(iStr);
x = Convert.ToInt32(iStr);

parse(),Convert() 함수의 차이점은 parse()함수는 null값이 들어가면 에러가 발생하고, Convert() 함수는 0을 반환한다고 하니 null값이 들어가면 안될 때에는 parse()함수를 상관 없다면 Convert() 함수를 사용하면 되겠다

 

*형변환 시 주의사항

string iStr = "10xxx"; 
int x; 
x = Convert.int32(iStr); // 에러발생 : 반환할 수 없는 값

10은 반환 가능하지만 xxx는 변환이 불가능 하므로 에러가 난다 

 

해결방법

string bStr = "10xxx"; 
int x; 
bool b; 
bool isSuccess; 
isSuccess = int.TryParse(bStr, out b);

이렇게 TryParse() 함수를 사용하여 변환이 가능한지 체크 해볼수 있다 

변환가능한지 체크하는 것 외에도 입력값이 어떤 자료형인지 알 수 있어 꽤 유용한 함수라고 생각한다

 

3.배열 

자료형[] 변수명 = new 자료형[] { 초기화 값 };

 

 

c++와 매우 유사하지만 []의 위치라던가 초기화를 하는 방법이 조금 다르다 

또 c++와 다른 점은 자동으로 초기화가 된다는 점인데 

c#은 내가 직접 초기화 값으을 지정해주지 않아도 만들어짐과 동시에 기본값으로 초기화 된다

 

int -> 0 

string ->  " " 

bool -> false

 

아주 편리하다

 

*foreach 반복문 

foreach(자료형 변수 in 배열이름) { }

c++의 범위 기반 for문이랑 같은 기능이지만 중간에 in이 들어가니까 뭔가 낮설게 느껴졌다 

그래도 조건식 없는 for문이라는것은 변함없다

 

4.번외

다른 부분을 찾으면서 공부하다 보니 내가 찾은것 외에도 다른점이 있는지 찾아보았다 

- c#은 메모리 관리를 자동으로 해준다

- 조건문에서 bool 타입만 참, 거짓을 판단할 수 있다 이유는 프로그래밍의 모호성을 제거하기 위해서

- 구조체는 값타입으로 취급하고, 클래스는 참조타입으로 취급한다

- 다중상속을 지원하지 않는다

- c++에서는 추상클래스가 있지만 c#에서는 인터페이스가 있다 

'TIL' 카테고리의 다른 글

[TIL] 내일배움캠프_Unity 1일차 git,github  (0) 2023.08.07
[TIL] 사전캠프 5일차  (0) 2023.08.04
[TIL] 사전캠프 4일차  (0) 2023.08.03
[TIL] 사전캠프 3일차  (1) 2023.08.02
[TIL] 사전캠프 2일차  (0) 2023.08.01