C#예제(16)
-
ref & out 차이
1. ref메소드를 이용한 Swap메소드 ( Call By Reference ) -> ref는 메소드를 선언할 때 매개변수 앞에 ref를 선언해주고, 호출할 때에도 마찬가지로 ref를 선언하여 호출하여야합니다. -> ref는 초기화하지 않지 않을 경우 "오류1할당되지 않은 'num1' 지역 변수를 사용했습니다. C:\Users\MyHome\Desktop\HelloWorld\HelloWorld\Program.cs1468HelloWorld " 에러가 발생하게 됩니다. ex1) ref로 사용할 변수를 초기화하지 않아 에러발생 static void Main(string[] args) { int num1, num2; Console.WriteLine("매개변수 스왑 전 :num1 = {0}, num2 = {1}",..
2016.12.12 -
메소드 오버로딩 ( Method Overloading )
1. 메소드 오버로딩 ( Method Overloading ) 접근지정자 반환형식 메소드명(매개변수1, 매개변수2) { 메소드 실행문 } 접근지정자 자료형 메소드명(매개변수1, 매개변수2) { 메소드 실행문 } 접근지정자 자료형 메소드명(매개변수1, 매개변수2) { 메소드 실행문 } -> 메소드 오버라이딩이란 같은 명을 가진 메소드가 전달받은 매개변수의 자료형에 따라 호출이 달라지는 것을 말합니다. -> 메소드의 명은 같더라도 메소드를 선언할 때 인자의 자료형을 다르게 선언하거나 자료형이 같다면 선언한 인자의 수를 다르게 하면됩니다. -> C언어에서는 함수 오버로딩을 선언할 수 없었던 이유는 함수의 명만 가지고 호출을 하기 때문에 같은명의 함수를 선언하지 못하기 때문입니다. ex) static void ..
2016.12.12 -
메소드를 이용한 Swap메소드 ( Call By Reference )
1. Call By Reference ( 참조에의한 호출 ) swap(ref num1, ref num2); static void swap(ref int num1, ref int num2) { int num_swap = num1; num1 = num2; num2 = num_swap; } -> Call By Reference는 변수의 주소값을 메소드로 전달하기 때문에 메소드에서 스왑을 하게되면 메인문의 변수가 저장되어있는 주소의 값을 변경하게 되는 것입니다. 따라서, 매개변수를 스왑을 하게 되면 메인문의 변수의 값도 스왑이 일어나게 됩니다. -> 메소드를 선언할 때와 호출할 때 ref 키워드를 꼭 작성해주어야 합니다.
2016.12.12 -
메소드를 이용한 Swap메소드 ( Call By Value )
1. Call By Value 메소드명(매개변수1, 매개변수2); -> 메소드로 데이터를 넘겨줄 때 Call By Value는 변수의 값만 넘겨주는 역할을 합니다. 따라서, 메인문에서 int 형으로 선언된 num1, num2와 메소드로 넘겨준 매개변수는 별개로 작용하게 되는 것입니다. ex)에서처럼 코드를 작성하게 되면 메인문의 변수 num1과 num2의 값이 변경된 것이아니라 메소드로 전달한 매개변수의 값을 스왑하고 출력은 매개변수가 아닌 num1과 num2를 출력하게 됩니다. 따라서, 메인문의 변수는 스왑은 일어나지 않게 되는 것입니다. ex) static void Main(string[] args) { int num1 = 0, num2 = 0; Console.WriteLine("첫번째 숫자를 입력하..
2016.12.12 -
중첩 while()문을 이용한 구구단
1. 중첩while()문을 이용한 구구단 ex) static void Main(string[] args) { int dan = 2, cnt = 1; while (dan
2016.12.12 -
while()문을 이용한 구구단
1. while() 문 while() 문 -> 개인적인 생각으로 while()문 보다는 for()문이 익숙하다보니 for()문이 편했습니다.... -> while문이 익숙하지 않아 중첩사용에 어려움이있었습니다... ex) static void Main(string[] args) { int dan = 2, cnt = 1; while (dan
2016.12.12