티스토리 뷰

C#/수업 내용

1월 1주 복습(메서드 연습)

Game Client Lee Hwanguk 2023. 1. 8. 00:24

#메서드

-지역변수와 전역(맴버)변수 이해)

-매개변수가 있고 그 값을 반환 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함