C#/문제 해결
메서드 복습
Game Client Lee Hwanguk
2023. 1. 6. 00:29
# 23/1/5 class를 배웠지만 메서드 이해가 안 된 상태에서는 이해하기 힘들다 복습이 반드시 필요하다
#지역변수와 맴버변수를 반환하여 저장하는 return 사용법을 알아야한다
#
#매개변수가 있고 맴버변수가 있는 타입
1.가격이 있는 아이템을 구매하는 메서드를 만들었다
2.나의 돈을 맴버변수지정해줬다
3.메서드 호출시 어떤아이템을(itemName) 얼마에(iteamPrice)에 구입했는지 보여준다(메서드 안에서 console.WriteLine)
4.맴버변수에 있는 myMoney가 메서드 호출시 'myMoney=myMoney-itemPrice;' 로 값을 초기화했다. (값을 초기화헀음으로 맴버변수의 값도 변했다.)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test01
{
internal class App
{
//맴버변수
int myMoney = 2000;
public App()
{
Console.WriteLine("App");
BuyItem("장검",200);
BuyItem("단검",700);
BuyItem("창",1000);
BuyItem("도끼",1300);
Console.WriteLine("나는 돈이 {0}원 남았습니다",myMoney);
}
void BuyItem(string itemName,int itemPrice)
{
Console.WriteLine("{0}을 구입했습니다. 가격은 {1}원 입니다",itemName,itemPrice);
myMoney=myMoney - itemPrice;
}
}
}
#만약 myMoney가 0원 이하면 아이템 구매를 못하게 하고싶다.
#if문을 만들어 돈이 부족한 상황을 만들고 myMoney 값을 더이상 itemPrice만큼 닳지 않게 하고싶다
#if 문 안에서 myMoney값을 반환? -return에 오류가 뜬다
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test01
{
internal class App
{
//맴버변수
int myMoney = 2000;
public App()
{
Console.WriteLine("App");
BuyItem("장검", 200);
BuyItem("단검", 700);
BuyItem("창", 1000);
BuyItem("도끼", 1300);
}
void BuyItem(string itemName, int itemPrice)
{
myMoney = myMoney - itemPrice;
if (myMoney >= 0)
{
Console.WriteLine("{0}을 구입했습니다. 가격은 {1}원 입니다", itemName, itemPrice);
Console.WriteLine("나는 돈이 {0}원 남았습니다", myMoney);
Console.WriteLine();
}
else if(myMoney <=0)
{
Console.WriteLine("돈이 부족하여 {0}을 구입할수 없습니다. ",itemName);
Console.WriteLine();
}
}
}
}
#해결했다
#myMoney = myMoney - itemPrice; if문 밖으로 뺐다
#return은 아직 어떻게 쓰는지 모르겠다 return을 이용하여 해결해봐야겠다
#상점에 아이템을 넣고 아이템을 구입해보자
#아이템이 있다면 Hero에게 착용까지 시켜보자