728x90
1. 배열
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//배열의 선언.
string[] cars = new string[10]; //배열의 개수는 10개, 타입은 string
Console.WriteLine(cars.Length);
//배열의 선언과 동시에 초기화.
string[] food = { "사과", "바나나", "파인애플", "수박" };
//int형의 배열생성.
int[] myNum = { 10, 20, 30, 40, 50 };
//배열의 요소에 접근하기.
//배열요소가 위치하는 숫자를 적어준다.
Console.WriteLine("첫번째 값을 뽑아보자:" + food[0]);
Console.WriteLine("세번째 값을 뽑아보자:" + food[2]);
Console.WriteLine("네번째 값을 뽑아보자:" + food[3]);
//배열의 요소변경하기.
food[0] = "밀감";
Console.WriteLine("변경된 값을 뽑아보자:" + food[0]);
//배열의 길이얻기.
Console.WriteLine("배열의 길이는?" + food.Length);
//2차원배열의 선언과 초기화
//열의 크기가 동일해야된다.
//오류예제:
//int[,] myNums = { { 1, 2, 3, 4 }, { 5, 6, 7 } };
//열의크기4로 동일하게하면 오류가 사라진다.
//2차원 배열은 대괄호안에 콤마(,)를 입력한다.
int[,] myNums = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
int arrayValue = myNums[0, 2]; //2
Console.WriteLine("바깥배열 인덱스=0, 내부배열 인덱스=2의 값:" + arrayValue);
//가변배열-> 2차원 배열을 선언할때는 내부배열의 크기를 전부 동일하게 해야하지만, 가변배열을 사용할때는 내부 배열의 열크기를 다르게 할 수 있다.
//추가할 1차원배열크기 필수로입력.
int[][] myNums2 = new int[4][];
myNums2[0] = new int[2] { 1, 2 }; // {{1,2},...,....,....}
myNums2[1] = new int[3] { 3, 4, 5 }; // {{1,2},{3,4,5}}
myNums2[2] = new int[4] { 6, 7, 8, 9 };//{{1,2},{3,4,5,},{6,7,8,9}}
myNums2[3] = new int[2]; //값이 없다면 0으로 초기화됨 -> {{1,2},{3,4,5,},{6,7,8,9},{0,0}}
//int var2 = myNums2[0,1];
Console.WriteLine(myNums2.Length);
int inlineArray = myNums2[2][3];
Console.WriteLine("inlineArray: " + inlineArray);
}
}
}
2. foreach문
C# foreach 문은 배열이나 컬렉션에 주로 사용하는데, 컬렉션의 각 요소를 하나씩 꺼내와서 foreach 루프 내의 블럭을 실행할 때 사용됩니다.
사용방법은 아래와 같습니다.
foreach(타입 변수명 in 배열)
{
}
아래 예제를 보겠습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
enum Month
{
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};
static void Main(string[] args)
{
Console.WriteLine("1차원 배열 출력");
int[] arr = new int[7] { 1, 2, 3, 4, 5, 6, 7 };
//foreach문
Console.WriteLine("foreach문으로 반복");
int index = 0;
foreach (int a in arr)
{
Console.WriteLine(index + "번째 값: " + a);
index++;
}
Console.WriteLine();
//for문
Console.WriteLine("for문으로 반복");
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(i + "번째 값: " + arr[i]);
}
//출력 0번째 값: 1
// 1번째 값: 2
// 2번째 값: 3
// 3번째 값: 4
// 4번째 값: 5
// 5번째 값: 6
// 6번째 값: 7
Console.WriteLine();
Console.WriteLine("2차원 배열 출력");
int[,] arr2 = new int[4, 3]
{
{ 10, 11, 12 },
{ 20, 21, 22 },
{ 30, 31, 32 },
{ 40, 41, 42 }
};
//foreach문
int index2 = 0;
foreach(int b in arr2)
{
Console.WriteLine(index2+"번째 값: "+b);
index2++;
}
//출력->0번째 값: 10
/* 1번째 값: 11
2번째 값: 12
3번째 값: 20
4번째 값: 21
5번째 값: 22
6번째 값: 30
7번째 값: 31
8번째 값: 32
9번째 값: 40
10번째 값: 41
11번째 값: 42
*/
Console.WriteLine();
//for문
for(int i = 0; i < 4; i++)
{
for(int j=0;j<3;j++)
{
Console.WriteLine("배열["+i+"]["+j+"]의 값: " + arr2[i,j]);
}
}
//출력 -> 배열[0][0]의 값: 10
/* 배열[0][1]의 값: 11
배열[0][2]의 값: 12
배열[1][0]의 값: 20
배열[1][1]의 값: 21
배열[1][2]의 값: 22
배열[2][0]의 값: 30
배열[2][1]의 값: 31
배열[2][2]의 값: 32
배열[3][0]의 값: 40
배열[3][1]의 값: 41
배열[3][2]의 값: 42
*/
Console.WriteLine() ;
//열거형 출력 ->Enum.GetValues()
foreach (int c in Enum.GetValues(typeof(Month)))
{
Console.WriteLine(c+"월");
}
/*
출력 -> 1월
2월
3월
4월
5월
6월
7월
8월
9월
10월
11월
12월
*/
Console.WriteLine() ;
//열거형 출력 ->Enum.GetNames()
foreach (string d in Enum.GetNames(typeof(Month)))
{
Console.WriteLine(d);
}
/*
출력 -> January
February
March
April
May
June
July
August
September
October
November
December
*/
}
}
}
'C# Programming > C#' 카테고리의 다른 글
[C#] 데이터 베이스 연결 및 기본 CRUD (1) | 2024.05.14 |
---|---|
[C#] 객체지향 프로그래밍 (0) | 2024.05.14 |
[C#] 비트 연산자 (0) | 2024.05.13 |
C# 설치 및 환경설정 (1) | 2024.05.13 |
C#이란? (0) | 2024.05.13 |