System.out.println("Hello, World");

c# foreach와 Out

2012. 9. 3. 10:57 : 프로그래밍

1. foreach

foreach문은 배열(Array)나 콜렉션(Collection)에 있는 원소들을 차례대로 순회하는 반복문이다.


foreach(자료형 변수이름 in 배열이나 콜렉션)

실행블록;


이렇게 쓰인다.


ex)

class ForeachTest

{

public static void Main()

{

int[] values = {1,2,3,4,5};

foreach(int value in values) // Values안에 있는 각 요소 수 만큼 반복한다.

{

Console.WriteLine(value);

}

}

}


int형 배열 Values를 선언한다. 배열은 여러 개의 자료를 담기 위해 메모리에 연속적인 공간을 마려해 놓은 것을 말한다. 각각의 공간은 크기가 같아야 하므로 항상 배열의 자료형을 명시해줘야 한다. 7행의 문장은 int 형 배열을 선언하고 1,2,3,4,5 다섯개의 숫자를 배열에 입력하고 있다.

9행에서 foreach문이 시작된다. int value in Values의 문장은 Values안에 있는 원소를 한개씩 꺼내서 value에 담아 넣는 역할을 한다. 이떄 value와 Values의 자료형은 일치해야 한다.


2. out

매개변수는 변수의 사용 목적에 따라 2가지로 나뉜다. 

 - 출력 매개변수(out parameter) : 서버에서 클라이언트로 값을 전달할 목적으로 사용된다.

 - 입력 매개변수(inparameter) : 클라이언트에서 서버로 값을 전달할 목적으로 사용된다.

보통 메소드는 매겨변수를 사용하여 입력을 받고 리턴을 사용하여 출력하지만 출력 매개변수를 사용해도 출력할 수 있다.

ex)

DividePlus(10,3,out nRemainder2),nRemainder2);

public static int DividePlus(int a, int b, out int c)

{

            c=a%b;

            return a/b;

}


out 키워드가 사용되면 out 키워드를 사용해서 호출한 변수에, 그 함수가 끝날때 그 값을 다시 저장해주는 역할을 한다. 다시 말해서 nRemainder2 변수는 out 키워드를 이용하여 DividePlus() 메소드의 C로 넘겨졌으며, 함수 안에서 변경되는 c의 값은 함수의 제어가 끝날때, nRemainder2에 적용되는 것이다. 그러므로, 함수안에서 c에 나머지 값을 저장하면 그 값이 nRemainder2에 저장되어 정상적인 결과를 출력한다.

Posted by 김마농