260928 정리 - 사용자 입력 / 연산자 (작성중)
string input = Console.ReadLine();
ReadLine -> 앤터 치기 전까지 안넘어감
Parse -> 입력으로 받은걸 지정해준데로 변환해서 리턴해줌
Parse와 Convert의 차이
거의 같지만 두 가지가 다름.
| 항목 | int.Parse | Convert.ToInt32 |
|---|---|---|
| 받는 것 | 문자열만 | 거의 모든 타입 |
| 값이 없을 때 | 오류 | 0을 돌려줌 |
실수 문자열 "3.7"을 정수로 | 오류 | 오류 |
실수 값 3.7을 정수로 | 직접 받을 수 없음 | 반올림하여 4 |
주로 Parse를 사용
TryParse
TryParse는 바꾸기를 시도하고, 성공했는지를
bool로 알려 줌. 실패해도 프로그램이 멈추지 않음.
첫 매개변수 - 변환하고 싶은 값
연산자는 산수 기호만이 아님. 값을 변수에 넣는 = (할당연산자)
/ = 몫을 리턴
% = 나머지를 리
식 = 값이 나옴
문 = 계산 단위
나눗셈은 몫만 남김
정수끼리 나누면 결과도 정수임. 소수점 이하는 버려짐. 반올림이 아님.
using System;
Console.WriteLine(10 / 3); // 3.333... 이지만
Console.WriteLine(10 / 4); // 2.5 이지만
Console.WriteLine(9 / 10); // 0.9 이지만
Console.WriteLine(1 / 2); // 0.5 이지만
실수 나눗셈으로 만들기
소수점까지 필요하면 피연산자 중 한쪽이라도 실수여야 함.
using System;
int total = 7;
int count = 2;
Console.WriteLine(total / count); // 정수 ÷ 정수
Console.WriteLine(7.0 / 2); // 리터럴을 실수로 적음
Console.WriteLine((double)total / count); // 한쪽을 실수로 바꿈
Console.WriteLine(total / (double)count); // 어느 쪽을 바꿔도 됨
형변환 연산자가 먼저 실행됨
몫과 나머지로 자릿수 분해
/와 %를 함께 쓰면 숫자의 각 자리를 꺼낼 수 있음.
using System;
int number = 3749;
int thousands = number / 1000; // 3749 ÷ 1000 의 몫
int hundreds = number / 100 % 10; // 백의 자리
int tens = number / 10 % 10; // 십의 자리
int ones = number % 10; // 일의 자리
Console.WriteLine($"{number} 의 각 자리");
Console.WriteLine($"천: {thousands}");
Console.WriteLine($"백: {hundreds}");
Console.WriteLine($"십: {tens}");
Console.WriteLine($"일: {ones}");
Console.WriteLine($"자릿수 합: {thousands + hundreds + tens + ones}");
실행 결과
++i - 전위
i++ - 후위
계산은 제대로 되는데 계산 전의 값을 리턴하고 그다음에 계산함
관계 연산자가( >, <, =) 논리 연산자(! || &&)보다 빠름
조건 연산자
조건에 따라 값을 고르는 식
조건 연산자 ? :는 조건을 보고 두 값 중 하나를 고르는 연산자임. 피연산자가 3개라서 삼항 연산자라고도 부름.
즉 형태가
조건 : True일때 : False일때
조건 ? 조건이 참일 때의 값 : 조건이 거짓일 때의 값
using System;
int score = 85;
string result = score >= 60 ? "합격" : "불합격";
Console.WriteLine(result);
실행 결과
합격



