260928 정리 - 사용자 입력 / 연산자 (작성중)

강현구
∙∙조회 6

 

csharp
string input = Console.ReadLine();

ReadLine -> 앤터 치기 전까지 안넘어감

 

Parse -> 입력으로 받은걸 지정해준데로 변환해서 리턴해줌

 


Parse와 Convert의 차이

거의 같지만 두 가지가 다름.

항목int.ParseConvert.ToInt32
받는 것문자열만거의 모든 타입
값이 없을 때오류0을 돌려줌
실수 문자열 "3.7"을 정수로오류오류
실수 값 3.7을 정수로직접 받을 수 없음반올림하여 4

주로 Parse를 사용

 


TryParse

TryParse는 바꾸기를 시도하고, 성공했는지를

bool로 알려 줌. 실패해도 프로그램이 멈추지 않음.

첫 매개변수 - 변환하고 싶은 값

 

 

 


연산자는 산수 기호만이 아님. 값을 변수에 넣는 = (할당연산자)

/ = 몫을 리턴

% = 나머지를 리

 


식 = 값이 나옴

문 = 계산 단위

 

 


 

나눗셈은 몫만 남김

정수끼리 나누면 결과도 정수임. 소수점 이하는 버려짐. 반올림이 아님.

csharp
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 이지만

 


실수 나눗셈으로 만들기

소수점까지 필요하면 피연산자 중 한쪽이라도 실수여야 함.

csharp
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);    // 어느 쪽을 바꿔도 됨

형변환 연산자가 먼저 실행됨

 


 

몫과 나머지로 자릿수 분해

/와 %를 함께 쓰면 숫자의 각 자리를 꺼낼 수 있음.

csharp
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일때

plain text
조건 ? 조건이 참일 때의 값 : 조건이 거짓일 때의 값

csharp
using System;

int score = 85;

string result = score >= 60 ? "합격" : "불합격";
Console.WriteLine(result);

실행 결과

plain text
합격