Notice
Recent Posts
Recent Comments
Link
스토리지
[3.15] 배열 복습 본문
1.
using System;
namespace Study05
{
public class App
{
public App()
{
Console.WriteLine("App");
//형식이 있는 배열변수 선언
string[] itemNames;
//배열 인스턴스 형성하고 초기화, 변수에 할당
//itemNames = new string[2];
//요소가 있는 배열
itemNames = new string[3] { "장검", "단검", null };
//배열의 길이 출력
Console.WriteLine("배열의 길이 : {0}", itemNames.Length);
//배열의 x인덱스에 요소의 값 할당
itemNames[itemNames.Length - 1] = "활";
//배열의 x인덱스 요소의 값 출력
string itemName = itemNames[itemNames.Length - 1];
Console.WriteLine("{0}번째 값 : {1}", itemNames.Length, itemNames[itemNames.Length - 1]);
//for문을 사용해서 배열의 요소 값 출력
for (int i = 0; i < itemNames.Length; i++)
{
Console.WriteLine("{0} : {1}", i + 1, itemNames[i]);
}
//foreach문을 사용해서 배열의 요소 값 출력
foreach(string i in itemNames)
{
Console.WriteLine(i);
}
}
}
}
2.
using System;
namespace Study05
{
public class App
{
enum eItemLevel
{
NORMAL,
MAGIC,
LEGEND
}
public App()
{
Console.WriteLine("App");
string[] arrNames = { "장검", "단검", "활", "도끼" };
int[] arrDamages = { 20, 32, 55, 12 };
eItemLevel[] arrLevel = { eItemLevel.NORMAL, eItemLevel.MAGIC, eItemLevel.NORMAL, eItemLevel.LEGEND };
Console.WriteLine("배열의 길이 : {0}", arrNames.Length);
arrNames[arrNames.Length - 1] = "전설 도끼";
for(int i = 0; i < arrNames.Length; i++)
{
Console.WriteLine("{0}, {1}, {2}", arrNames[i], arrDamages[i], arrLevel[i]);
}
Console.WriteLine();
int index = 0;
foreach(string i in arrNames)
{
Console.WriteLine("{0}, {1}, {2}", i, arrDamages[index], arrLevel[index]);
index++;
}
}
}
}
Foreach로는 하나의 배열에 대한 요소의 값만 불러올 수 있다. 여러개의 배열을 하나의 foreach문으로 출력하기 위해서는 따로 인덱스 선언이 필요하다.
아이템 등급을 enum 타입이 아닌 Int배열로 선언했을 때)
using System;
namespace Study05
{
public class App
{
enum eItemLevel
{
NORMAL,
MAGIC,
LEGEND
}
public App()
{
Console.WriteLine("App");
string[] arrNames = { "장검", "단검", "활", "도끼" };
int[] arrDamages = { 20, 32, 55, 12 };
//eItemLevel[] arrLevel;
//arrLevel = new eItemLevel[] { eItemLevel.NORMAL, eItemLevel.MAGIC, eItemLevel.NORMAL, eItemLevel.LEGEND };
int[] arrLevel = new int[]{ 1, 2, 1, 3 };
Console.WriteLine("배열의 길이 : {0}", arrNames.Length);
arrNames[arrNames.Length - 1] = "전설 도끼";
for(int i = 0; i < arrNames.Length; i++)
{
Console.WriteLine("{0}, {1}, {2}", arrNames[i], arrDamages[i], (eItemLevel)arrLevel[i]);
}
Console.WriteLine();
int index = 0;
foreach(string i in arrNames)
{
Console.WriteLine("{0}, {1}, {2}", i, arrDamages[index], (eItemLevel)arrLevel[index++]);
}
}
}
}
3.
using System;
namespace Study05
{
public class App
{
public App()
{
string[] arrNames = { "장검", "단검", "활", "도끼" };
for(int i = 0; i < arrNames.Length; i++)
{
if (arrNames[i].Equals("단검"))
{
Console.WriteLine("단검을 찾았습니다, index:{0}", i);
}
}
}
}
}
4. 단검이 배열에 없을 때
using System;
namespace Study05
{
public class App
{
public App()
{
string[] arrNames = { "장검", "검", "활", "도끼" };
bool isFind = false;
for(int i = 0; i < arrNames.Length; i++)
{
if (arrNames[i].Equals("단검"))
{
Console.WriteLine("단검을 찾았습니다, index:{0}", i);
isFind = true;
}
}
if (!isFind)
{
Console.WriteLine("단검을 찾을 수 없습니다.");
}
}
}
}
5. 클래스를 사용하여 구현
using System;
namespace Study05
{
public class Item
{
enum eItemLevel
{
NORMAL,
MAGIC,
LEGEND
}
private string name;
private int damage;
private int itemLevel;
public Item()
{
Console.WriteLine("ITEM 생성됨");
}
public Item(string name, int damage, int itemLevel)
{
Console.WriteLine("ITEM 생성됨");
this.name = name;
this.damage = damage;
this.itemLevel = itemLevel;
}
public void SetName(string name)
{
this.name = name;
}
public string GetName()
{
return this.name;
}
public void SetDamage(int damage)
{
this.damage = damage;
}
public int GetDamage()
{
return this.damage;
}
public void SetItemLevel(int itemLevel)
{
this.itemLevel = itemLevel;
}
public int GetItemLevel()
{
return itemLevel;
}
public void Print()
{
Console.WriteLine("{0}, {1}, {2}", this.name, this.damage, (eItemLevel)this.itemLevel);
}
}
}
using System;
namespace Study05
{
public class App
{
public App()
{
Item item1 = new Item("장검", 20, 0);
Item item2 = new Item("단검", 32, 1);
Item item3 = new Item();
Item item4 = new Item();
item3.SetName("활");
item3.SetDamage(55);
item3.SetItemLevel(0);
item4.SetName("전설 도끼");
item4.SetDamage(55);
item4.SetItemLevel(2);
item1.Print();
item2.Print();
item3.Print();
item4.Print();
}
}
}
'Unity > 수업내용(C#)' 카테고리의 다른 글
[3.15] 배열, 클래스 심화 - 인벤토리 구현 (0) | 2021.03.15 |
---|---|
[3.15] 배열 복습 2 - 강화 & 합성 기능추가 (0) | 2021.03.15 |
[3.12] 상속 예제 1 (0) | 2021.03.12 |
[3.12] 상속 Inheritance (0) | 2021.03.12 |
[3.12] Array 연습 (0) | 2021.03.12 |
Comments