배열 예제 복습
inventory.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class Inventory
{
//멤버변수
int capacity;
int index;
private Item[] items;
public string Name { get; set; }
//생성자
public Inventory(int capacity) {
this.capacity = capacity;
//아이템을 그룹화, 관리
items = new Item[this.capacity];
}
//메서드
public void AddItem(Item item)
{//아이템 추가
//아이템을 요소로 할당
int lastIndex = this.capacity - 1;
if (this.index > lastIndex) {
Console.WriteLine("공간이 부족 합니다.");
return;
}
//Console.WriteLine("=> {0}", item.name);
//index : 0
//배열의 index 요소에 값넣기
this.items[index] = item;
index++;
}
public Item GetItemByName(string searchName)
{//itenName으로 배열 요소가 있는지 출력
Item foundItem = null;
for (int i = 0; i < this.items.Length; i++)
{
Item item = this.items[i];
if (item != null)
{
if (item.Name == searchName)
{
this.items[i] = null;
foundItem = item;
break;
}
}
}
return foundItem;
}
public void PrintAllItems()
{
for(int i=0; i < this.items.Length; i++)
{
Item item = this.items[i];
if (item != null)
{
Console.WriteLine("{0}",item.Name);
}
else
{
Console.WriteLine("[ ]");
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class App
{
//생성자
public App()
{
//크기가 5인 정수형 배열 arr 정의
int[] arr;
arr = new int[5];
//출력
Console.WriteLine(arr); //배열의 인스턴스
Console.WriteLine(arr.Length); //5
//배열의 요소 접근
//인덱스는 0부터 ~arr.Length - 1(마지막 인덱스)
Console.WriteLine(arr[0]);//0
Console.WriteLine(arr[1]);//1
Console.WriteLine(arr[2]);//2
Console.WriteLine(arr[3]);//3
Console.WriteLine(arr[4]);//4
//배열을 순회 하는 방법
for (int i=0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
//foreach:배열의 요소를 수정하지 않는다.(읽을때만 사용해라)
int idx = 0;
foreach (int num in arr)
{
Console.WriteLine(num);
idx++;
}
int index = 6;
int lastIndex = arr.Length - 1;//4
arr[0] = 1;
arr[arr.Length - 1] = 2;//마지막 인덱스 요소에 값을 할당
if(index <= lastIndex)
{
arr[index] = 3;
}
else
{
Console.WriteLine("범위를 벗어남");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class App
{
//생성자
public App()
{
//문자열 배열 변수 정의 (itemNames)
string[] itemNames;
//길이가 3인 문자열 배열 인스턴스를 생성하고 변수에 할당
itemNames = new string[3];
//배열의 길이를 출력
Console.WriteLine(itemNames.Length);
// 배열 요소에 값 할당
itemNames[0] = "장검";
itemNames[1] = "단검";
//배열을 순회 하며 요소의 값 출력
for (int i = 0; i < itemNames.Length; i++)
Console.WriteLine("{0}: {1}", i, itemNames[i]);
Console.WriteLine("------------------------");
//foreach를 사용해 배열 요소를 출력
foreach (string itemName in itemNames)
Console.WriteLine("=>{0}", itemName);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class App
{
//생성자
public App()
{
//빈 배열을 만든다.
string[] itemNames = new string[3];
//각 요소의 값이 있는 배열을 만든다
string[] itemNames1 = {"장검","단검","활"};
string[] itemNames2 = new string[] { "장검", "단검", "활" };
foreach(string itemName in itemNames1)
{
Console.WriteLine("=>{0}", itemName);
}
Console.WriteLine("배열의 크기: {0}", itemNames1.Length);
//처리되지 않은 예외: System.IndexOutOfRangeException: 인덱스가 배열 범위를 벗어났습니다
itemNames1[3] = "도끼";
}
}
}
'C# 기초 복습' 카테고리의 다른 글
Quaternion.identity, LookRotation, 비트 연산자 (0) | 2023.08.21 |
---|---|
Unity- Coroutines(코루틴) (0) | 2023.08.08 |
2주차 복습 (0) | 2023.07.31 |
JSON예제, 대리자 복습 (0) | 2023.07.27 |
1주차 복습 (0) | 2023.07.24 |