오늘의 복습
Parse와 Convert의 차이
| 항목 | int.Parse | Convert.ToInt32 |
|---|---|---|
| 받는 것 | 문자열만 | 거의 모든 타입 |
| 값이 없을 때 | 오류 | 0을 돌려줌 |
실수 문자열 "3.7"을 정수로 | 오류 | 오류 |
실수 값 3.7을 정수로 | 직접 받을 수 없음 | 반올림하여 4 |
💡 팁: 문자열을 숫자로 바꿀 때는 int.Parse와 Convert.ToInt32중 무엇을 써도 됨. 어느 타입으로 바뀌는지가 이름에 드러나므로 int.Parse 쪽이 읽기 쉬움
Parse와conver는 숫자로 바꿀 수 없는 문자열을 받으면 프로그램을 멈춘다.
| 사용자가 입력한 것 | int.Parse 결과 |
|---|---|
42 | 42 |
-7 | -7 |
4.2 | 멈춤 (정수가 아님) |
abc | 멈춤 |
| 빈 입력 (그냥 Enter) | 멈춤 |
2147483648 | 멈춤 (int 범위 초과) |
42 (앞뒤 공백) | 42 (공백은 무시됨) |
TryParse
TryParse는 바꾸기를 시도하고, 성공했는지를bool로 알려준다. 실패해도 프로그램이 멈추지 않는다.
| 조각 | 뜻 |
|---|---|
int.TryParse(...) | 문자열을 int로 바꾸기를 시도함 |
첫 번째 인수 input | 바꿀 문자열 |
두 번째 인수 out int number | 성공했을 때 결과를 받을 변수를 여기서 함께 선언함 |
| 돌려주는 값 | 성공 여부 (bool) |
| 수단 | 무엇에서 무엇으로 | 바꿀 수 없으면 |
|---|---|---|
캐스트 (타입)값 | 숫자 ↔︎ 숫자 | 정밀도 손실·잘림이 가능하며, 타입과 검사 설정에 따라 예외도 발생 |
int.Parse(문자열) | 문자열 → 숫자 | 프로그램이 멈춤 |
Convert.ToInt32(값) | 거의 모든 타입 → 숫자 | 프로그램이 멈춤. 값이 없으면 0 |
int.TryParse(문자열, out 결과) | 문자열 → 숫자 | 멈추지 않고 false |
💡 팁: 사용자가 입력한 값을 다룰 때는 TryParse를 기본으로 씀. 코드에 적어 둔 문자열처럼 타입이 확실한 값이면 Parse가 짧아서 좋음



