티스토리 뷰
#메서드
-지역변수와 전역(맴버)변수 이해)
-매개변수가 있고 그 값을 반환 return 하는 메서드 연습 필요)
-*return 은 메서드 안의 값을 반환한다*
#여러가지 타입의 메서드를 연습해보자
-매개변수가 있는 메서드, 메서드 안에 값을 반환해보자
-매개변수가 없는 메서드, 메서드 안에 값을 반환해보자
1.매개변수가 있는메서드, 메서드 안에 값을 return
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace review01
{
internal class App
{
public App()
{
//매개변수가 있고 반환값이 있는 메서드
int result1=Sum(1, 2); //Sum에서 return으로 반환받은 값을 int타입의 result에 받았다
Console.WriteLine(result1); //출력해서 확인해보자.
}
int Sum(int num1, int num2)
{
int sumNum=num1 + num2;
return sumNum; //num1 과 num2의 합을 sumNum에 할당하고 반환을했다
}
}
}
2.매개변수가 없는 메서드, 메서드 안에 값을 return
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace review01
{
internal class App
{
public App()
{
//매개변수가 없는 메서드, 메서드 안의 값을 return으로 받아보자
int num=Test(); //반환 받은 100을 num에 넣어봤다 // 반환 값이 현재 어디에 있는지 계속 따라가야함
int sumNum=num + 10; //반환 받은 값이 int 형식이니 연산을 시킨 후 sumNum 변수에 할당해보자
Console.WriteLine(sumNum); //잘 들어갔나 보자
}
int Test()
{
return 100; //Test 메서드에 100 의 값을 반환시켜봤다
}
}
}
3. 메서드 연습, 매게변수가 있고 if문이 있다(
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace review01
{
internal class App
{
string heroName="홍길동";
int heroHp;
int heroMaxHp=10; //어떤 변수의 값을 변하게 할것이고 변하지 않게 할것인지 판단
//메서드 연습1
//홍길동이 3 만큼 피해를 입었습니다. (7/10)
//홍길동이 1만큼 회복 되었습니다 (8/10)
//홍길동이 1만큼 회복 되었습니다 (9/10)
//홍길동이 1만큼 회복 되었습니다 (10/10)
//더이상 치유 할수 없습니다.
//1. 영웅을 만들자 (어떤 변수를 먼저 만들지, 어떤걸 만들지 생각 후 써보자
//2. if문을 이용하여 더이상 치료받지 못하는 경우를 만들어보자
public App()
{
heroHp = heroMaxHp; //1.heroHp(지역변수) 는 10(맴버변수인 heroMaxHp)의 값을 가지고있다
heroDamaged(3); // 7/10
heroHeal(1); // 8/10
heroHeal(1); // 9/10
heroHeal(1); // 10/10
heroHeal(1); // "더 이상 치료 할 수없다."
}
void heroDamaged(int damage)
{
heroHp=heroHp - damage;
Console.WriteLine("{0}은 {1}의 피해를 입었다. 현재 체력 {2}/{3}",heroName,damage,heroHp,heroMaxHp);
}
void heroHeal(int healNum)
{
heroHp = heroHp + healNum;
if (heroHp <= 10)
{
Console.WriteLine("{0}은 치료 {1}을 받았다. 현재 체력{2}/{3}", heroName, healNum, heroHp, heroMaxHp);
}
else if (heroHp > 10)
{
Console.WriteLine("더이상 치료할수없다");
}
}
}
}
4.메서드 연습(매게변수, 지역변수, 맴버변수 활용, if문으로 특이사항 만들어보기)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace review01
{
internal class App
{
string heroName = "홍길동";
int heroHp;
int heroMaxHp = 10; //어떤 변수의 값을 변하게 할것이고 변하지 않게 할것인지 판단
public App()
{
heroHp = heroMaxHp; //1.heroHp(지역변수) 는 10(맴버변수인 heroMaxHp)의 값을 가지고있다
heroDamaged(3); // 7/10
heroHeal(1); // 8/10
heroHeal(1); // 9/10
heroHeal(1); // 10/10
heroHeal(1); // "더 이상 치료 할 수없다."
heroDamaged(100); // 0/10
heroDamaged(100); //"이미 죽었다" => boo isDie로 죽었다? 안죽었다?
}
void heroDamaged(int damage)
{
heroHp = heroHp - damage;
if (heroHp > 0)
{
Console.WriteLine("{0}은 {1}의 피해를 입었다. 현재 체력 {2}/{3}", heroName, damage, heroHp, heroMaxHp);
}
if (heroHp <= 0)
{
heroHp = 0;
Console.WriteLine("{0}이 {1}의 피해를 받았다. {2}/{3} 죽었습니다.", heroName, damage, heroHp, heroMaxHp);
}
}
void heroHeal(int healNum)
{
heroHp = heroHp + healNum;
if (heroHp <= heroMaxHp)
{
Console.WriteLine("{0}은 치료 {1}을 받았다. 현재 체력{2}/{3}", heroName, healNum, heroHp, heroMaxHp);
}
else if (heroHp > heroMaxHp)
{
Console.WriteLine("더이상 치료할수없다");
}
}
}
}
5.메서드 연습(열거형식에 상수들을 매개변수로 받아본다)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace review01
{
internal class App
{
enum MenuType
{
CHARACTER,
SHOP,
PET
}
public App()
{
SelectMenu(MenuType.SHOP);
SelectMenu(MenuType.CHARACTER);
}
void SelectMenu(MenuType type)
{
if(type==MenuType.CHARACTER)
{
Console.WriteLine("케릭터를 선택했다");
}
else if(type==MenuType.SHOP)
{
Console.WriteLine("상점을 선택했다");
}
else
{
Console.WriteLine("펫을 선택했다");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace review01
{
internal class App
{
float nextExp = 115f;
float myExp = 89.5f;
int maxLevel = 2;
int level = 1;
public App()
{
GetExp(19f);
GetExp(33.14f);
GetExp(33.14f);
//경험치(19)를 획득 했습니다. (108.50/115) 94%
//경험치(33.14)를 획득 했습니다. (115/115) 100%
//레벨업을 했습니다.
//2레벨이 되었습니다.
//최대 레벨에 도달 했습니다.
}
void GetExp(float exp)
{
if (level < maxLevel)
{
myExp = myExp + exp;
float per = myExp / nextExp * 100;
if (myExp >= nextExp)
{
myExp = nextExp;
level++;
Console.WriteLine("경험치 ({0})를 획득 했습니다. ({1}/{2}) {3}%", exp, myExp, nextExp, per);
Console.WriteLine("레벨업을 했습니다. {0}레벨이 되었습니다.", level);
myExp = 0;
}
else
{
Console.WriteLine("경험치 ({0})를 획득 했습니다. ({1}/{2}) {3:0}%", exp, myExp, nextExp, per);
}
}
else
{
Console.WriteLine("최대 레벨에 도달 했습니다.");
myExp = 0;
}
}
}
}
'C# > 수업 내용' 카테고리의 다른 글
여러타입의 배열 연습 (0) | 2023.01.09 |
---|---|
배열 1.9 오전 복습 (0) | 2023.01.09 |
1월 1주 복습 (1/2) (0) | 2023.01.07 |
배열 (0) | 2023.01.06 |
메서드 호출 연습 (0) | 2023.01.06 |