2024. 12. 27. 17:38ㆍ컴퓨터 언어/c#
크리스마스가 즐거웠기를 바란다. 나는 크리스마스 다음날 아침까지 술을 마시는 바람에 어제 하루를 그대로 망쳐버렸다. 내년 크리스마스에는 여자친구가 생겨서 얌전히 보낼 수 있기를 기도하면서 오늘 공부를 시작하겠다. 공부하는 날보다 노는 날이 더 많지만 이제부터라도 열심히 하면 될 것이다. 오늘은 산술 연산에 대해 공부 할 것이다.
using System;
class Program
{
static void Main(string[] args)
{
float HP = 100.0f;
float MAX_HP = 100.0f;
string input=Console.ReadLine();
float damage=float.Parse(input);
HP = HP - damage;
if (HP <= 0)
{
Console.WriteLine("사망");
}
else
{
Console.WriteLine($"HP: {HP}/{MAX_HP}");
}
}
}
자 여기서 아직 배우지 않은 if문을 사용했지만 이런 식으로 게임을 만들 때 보통 대미지 계산을 하지 않는가? 계산을 하기 위해 사용하는 기호들이 있다. 위 코드를 보면 알 수 있듯이 우리가 알고 있는 기호들과 크게 다르지 않다. 그럼 별로 어렵지 않은 것을 확인 했으니 바로 간단히 설명하겠다.
+,-,*,/,%이 기호들은 간단한 사칙연산을 하는 기호들이다 차례대로 설명하자면 더하기 빼기 곱하기 나누기(몫을 계산) 그리고 나누기(나머지를 계산) 를 해준다. 여기서 하나 알아 둘 것이 보통 우리가 수학을 할때 식을 쓰면 3+2=5 이런 식으로 결과가 오른쪽으로 나온다. 하지만 코딩을 할 때 식을 보면 5=3+2 이렇게 쓰는 것을 확인 할 수 있다. 그럼 간단한 코드로 위의 기호들을 사용하는 것을 보여주겠다.
using System;
class Program
{
static void Main(string[] args)
{
int num = 1;
num = num + 1;
Console.WriteLine(num); //2 출력
num = num - 1;
Console.WriteLine(num); //1 출력
num = num * 10;
Console.WriteLine(num); //10출력
num = num / 5;
Console.WriteLine(num);//2출력
num = num % 2;
Console.WriteLine(num);//0출력
}
}
여기서 보면 num안에 저장된 숫자가 계속 바뀐다. 계속 num에 계산된 결과를 저장했기 때문이다. 마지막에는 나머지가 없이 딱 떨어지기 때문에 0이 저장된 것을 확인 할 수 있다. 이런 식으로 계속 변수를 업데이트 사용한 이유는 계산 할 때마다 변수를 새로 만들 필요는 없기 때문이다.
위의 코드를 축약한 버전이 있다.
using System;
class Program
{
static void Main(string[] args)
{
int num = 1;
num += 1;
Console.WriteLine(num); //2 출력
num -= 1;
Console.WriteLine(num); //1 출력
num *= 10;
Console.WriteLine(num); //10출력
num /=5;
Console.WriteLine(num);//2출력
num %= 2;
Console.WriteLine(num);//0출력
}
}
위와 같이 쓰는 방법이다. 사실 num = num + 1 이런 식으로 식을 쓰는 것은 보기 힘들수도 있고 또 좀 이상하게 느껴지기도 한다. 그래서 위와 같은 방식으로 축약해서 쓴다. 의미는 같고 쓰는 방식만 다른 것이다. 또 다른 방식이 있다. 1만 더하고 빼고 싶을 때 위와 같이 코드를 쓰는 것은 또 너무 길다고 느낄 수 있다. 그래서 나온 방법이 그냥 ++를 쓰는 것이다. 그러면 1을 더해라 하는 의미인데 여기서 주의 할 점은 ++가 앞에 오느냐 뒤에 오느냐에 따라 조금 다르다. 예시를 보여주겠다.
using System;
class Program
{
static void Main(string[] args)
{
int num = 1;
Console.WriteLine(num++);//1출력
num = 1;
Console.WriteLine(++num);//2출력
}
}
자 ++는 분명 1을 더해주라는 뜻인데 ++를 뒤에 붙였을 때는 1이 나오고 앞에 붙였을 때는 2가 나온다. 왜 그럴까? 내가 거짓말을 한 것일까? 아니다. 의미가 조금 다르다. ++를 앞에 붙였을 때는 1을 더하고 출력하는 것이고 ++를 뒤에 붙였을 때는 출력을 하고 난 뒤에 1을 더한 것이다. 즉 ++을 뒤에 붙였을 때 1이 출력되었다고 해서 1을 더하지 않은게 아니다. 출력후에 더해 진거다. 이걸 증강 연산자라고 하는데 후위와 전위의 차이를 똑바로 알아두는 것이 중요하다.
using System;
class Program
{
static void Main(string[] args)
{
int num = 1;
int b = num++;
Console.WriteLine(b);
int c=++num;
Console.WriteLine(c);
}
}
이거 출력을 생각해보고 맞춘다면 완전히 이해한 것이다. 한번 코드를 잘 보고 생각해보자
'컴퓨터 언어 > c#' 카테고리의 다른 글
비교 연산과 논리 연산 (0) | 2025.01.01 |
---|---|
c# 데이터 다루기 (1) | 2024.12.24 |
C# 자료형 (1) | 2024.12.20 |