C#/C#언어

6일차 _ 배열 문제 풀기

minquu 2021. 3. 15. 11:16
반응형

문1. 배열 2개를 사용

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    class App
    {
        enum eGrade
        {
            NORMAL,
            MAGIC,
            LEGEND,
        }
        public App() {
            Console.WriteLine("이것은 app 생성자입니다.");
            //int 배열변수 선언
            int[] damage;
            string[] itemNames;
            int[] itemGrades;

            //배열 변수를 선언하고 배열 인스턴스를 생성하고 초기화
            damage = new int[] { 20, 32, 55, 0 };
            itemNames = new string[] { "장검", "단검", "활", "도끼" };
            itemGrades = new int[] { 0, 1, 0, 2 };

            ////배열의 요소는 인덱스 0 ~ n-1
            ////배열의 길이 출력
            //Console.WriteLine(damage.Length);
            //Console.WriteLine(itemNames.Length);
            //Console.WriteLine();

            //배열의 x인덱스에 값 할당
            itemNames[itemNames.Length - 1] = "전설 도끼";
            damage[damage.Length - 1] = 12;

            ////배열의 x인덱스의 요소 값 출력
            //int lastIndex = itemNames.Length - 1;
            //string lastIndexItemNama = itemNames[lastIndex];
            //Console.WriteLine(lastIndexItemNama);
            //int lastIndexdam = damage.Length - 1;
            //int lastIndexdama = damage[lastIndexdam];
            //Console.WriteLine(lastIndexdama);


            //for문을 사용해서 배열의 요소 값 출력
            for (int i = 0; i < itemNames.Length; i++)
            {
                string itemName = itemNames[i];
                int damageValue = damage[i];
                //int itemGrade = itemGrades[i];
                //eGrade grade = (eGrade)itemGrade;
                Console.WriteLine("{0}, {1}", itemName, damageValue);
            }



        }
    }
}

 

 

문2. 배열 1개 추가 enum 정의

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    class App
    {
        enum eGrade
        {
            NORMAL,
            MAGIC,
            LEGEND,
        }
        public App() {
            Console.WriteLine("이것은 app 생성자입니다.");
            //int 배열변수 선언
            int[] damage;
            string[] itemNames;
            int[] itemGrades;

            //배열 변수를 선언하고 배열 인스턴스를 생성하고 초기화
            damage = new int[] { 20, 32, 55, 0 };
            itemNames = new string[] { "장검", "단검", "활", "도끼" };
            itemGrades = new int[] { 0, 1, 0, 2 };

            ////배열의 요소는 인덱스 0 ~ n-1
            ////배열의 길이 출력
            //Console.WriteLine(damage.Length);
            //Console.WriteLine(itemNames.Length);
            //Console.WriteLine();

            //배열의 x인덱스에 값 할당
            itemNames[itemNames.Length - 1] = "전설 도끼";
            damage[damage.Length - 1] = 12;

            ////배열의 x인덱스의 요소 값 출력
            //int lastIndex = itemNames.Length - 1;
            //string lastIndexItemNama = itemNames[lastIndex];
            //Console.WriteLine(lastIndexItemNama);
            //int lastIndexdam = damage.Length - 1;
            //int lastIndexdama = damage[lastIndexdam];
            //Console.WriteLine(lastIndexdama);


            //for문을 사용해서 배열의 요소 값 출력
            for (int i = 0; i < itemNames.Length; i++)
            {
                string itemName = itemNames[i];
                int damageValue = damage[i];
                int itemGrade = itemGrades[i];
                eGrade grade = (eGrade)itemGrade;
                Console.WriteLine("{0}, {1}, {2}", itemName, damageValue, grade);
            }



        }
    }
}

 

문3. 단검 매치 후, break; 걸기

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    class App
    {
        enum eGrade
        {
            NORMAL,
            MAGIC,
            LEGEND,
        }
        public App() {

            //int 배열변수 선언하고 새로운 배열 인스턴스 생성, 초기화
            string[] itemNames = new string[] { "장검", "단검", "활", "도끼" };


            ////배열의 요소는 인덱스 0 ~ n-1
            ////배열의 길이 출력


            //배열의 x인덱스에 값 할당


            ////배열의 x인덱스의 요소 값 출력



            //for문을 사용해서 배열의 요소 값 출력

            for (int i = 0; i < itemNames.Length; i++)
            {
                string itemName = itemNames[i];
                switch (itemName)
                {
                    case "단검":
                        Console.WriteLine("이것은 단검입니다.");
                        break;
                }

            }


        }
    }
}

문4.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    class App
    {

        public App()
        { 
            //int 배열변수 선언하고 새로운 배열 인스턴스 생성, 초기화
            string[] itemNames = new string[] { "도끼", "창", "캉", "지팡이" };
            string searthItemName = "지팡이";
            string foundItemName = "";
            int foundItemIndex = 0;

            for (int i = 0; i < itemNames.Length; i++) {
                if (searthItemName == itemNames[i]) {
                    foundItemName = itemNames[i];
                    foundItemIndex = i;
                    break;
                }
            }

            if (string.IsNullOrEmpty(foundItemName))
            {
                Console.WriteLine("{0}를 찾을 수 없습니다.", searthItemName);
            }
            else
            {
                Console.WriteLine("{0}를 찾았습니다. index : {1}", searthItemName, foundItemIndex);
            }
        }
    }
}

 

문5.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    public class Item
    {
        enum eGrade
        { 
            NORMAL,
            MAGIC,
            LEGEND,
        }

        string[] itemName = new string[] { "장검", "단검", "활", "전설 도끼" };
        int[] itemDamage = new int[] { 20, 32, 55, 12 };
        int[] itemGrade = new int[] { 0, 1, 0, 2 };


        public Item() {
            for (int i = 0; i < itemName.Length; i++)
            {
                Console.WriteLine("{0}, {1}, {2}", itemName[i], itemDamage[i], (eGrade)itemGrade[i]);
            }

            string searchItem = "단검";
            string foundItem = "";
            int foundItemIndex = 0;

            for (int i = 0; i < itemName.Length; i++) {
                if (searchItem == itemName[i]) {
                    foundItem = itemName[i];
                    foundItemIndex = i;
                    break;
                }
            }

            if (string.IsNullOrEmpty(foundItem))
            {
                Console.WriteLine("{0}이 없습니다", searchItem);
            }
            else
            {
                Console.WriteLine("{0}을 찾았습니다.index : {1}", searchItem, foundItemIndex);
            }
        }
    }
}

 

 

 

 

 

문6. 메서드 활용해서

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    public class Item
    {
        enum eGrade
        { 
            NORMAL,
            MAGIC,
            LEGEND,
        }

        string[] itemName = new string[] { "장검", "단검", "활", "전설 도끼" };
        int[] itemDamage = new int[] { 20, 32, 55, 12 };
        int[] itemGrade = new int[] { 0, 1, 0, 2 };


        public Item() {
            //for (int i = 0; i < itemName.Length; i++)
            //{
            //    Console.WriteLine("{0}, {1}, {2}", itemName[i], itemDamage[i], (eGrade)itemGrade[i]);
            //}

            //string searchItem = "단검";
            //string foundItem = "";
            //int foundItemIndex = 0;

            //for (int i = 0; i < itemName.Length; i++) {
            //    if (searchItem == itemName[i]) {
            //        foundItem = itemName[i];
            //        foundItemIndex = i;
            //        break;
            //    }
            //}

            //if (string.IsNullOrEmpty(foundItem))
            //{
            //    Console.WriteLine("{0}이 없습니다", searchItem);
            //}
            //else
            //{
            //    Console.WriteLine("{0}을 찾았습니다.index : {1}", searchItem, foundItemIndex);
            //}

            
           

        }

        public  void SearchItem(string searchItemName) {
            for (int i = 0; i < itemName.Length; i++)
            {
                if (searchItemName == itemName[i])
                {
                    Console.WriteLine("{0}이 있습니다.",searchItemName);
                    break;

                }
                else {
                    Console.WriteLine("{0}이 없습니다.", searchItemName);
                    break;
                }
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study05
{
    class App
    {

        public App()
        {
            Item search = new Item();
            string searchName = "호랑이";
            search.SearchItem(searchName);
        }
    }
}
반응형

'C# > C#언어' 카테고리의 다른 글

0317 _ 문) 클래스를 만들어서 배열 만들기  (0) 2021.03.17
0317 _ 문제1) 배열 복습 연습문제  (0) 2021.03.17
1주 차 공부내용 정리 _ 형식  (0) 2021.03.15
4일차_수업내용  (0) 2021.03.11
4일차_클래스 예제연습  (0) 2021.03.11