분기문


if문의 선언


if (조건식)

{

//조건식이 참일경우 실행할 코드

}


if else문의 선언


if (조건식1)

{

//조건식1이 참일경우 실행할코드

}

else if(조건식)

{

//조건식2가 참일경우 실행할 코드

}

else

{

//조건식을 모두 만족하지 않을경우 실행할 코드

}  


// Console.ReadLine(); 메소드는 사용자로부터 문자열을 입력받아 그 결과를 반환하는 역할을 함


if문은 중첩 가능하다 - 하지만 중첩의 남용은 코드를 복잡하게 만들기 쉽기 때문에 단순하고 명료한 코드를 짜기 위한 노력이 필요하다 이 이유로 switch문과 while 문은 거의 중첩하지 않는다. 반복문 중첩시 주로 for문을 이용.


switch문의 선언


switch ( 조건식 or 변수)

{

case 상수1 : 

// 실행할 코드

break;

case 상수2 :

// 실행할 코드

break;

default :

// 예외 Case인 경우 실행할 코드

break;

}

// 상수에는 문자, 문자열또한 사용 가능하다



반복문


특정조건을 만족하는동안 코드를 반복하여 실행하는 문장


while , do while , for , foreach


while문의 선언


while(조건식)

{

//반복실행할 코드

}


while문은 조건식이 True 인 경우 반복하여 코드 실행


do while 문의 선언


do

{

//반복실행할 코드

}while(조건식);

do while문을 사용할때 마지막에 반드시 ; (세미콜론)을 붙여줘야 한다.

while 문과의 차이점은 do while 문은 코드를 일단 실행한 후 조건을 검사한다는것이다


for문의 선언


for( 초기화식;조건식;반복식)

{

//반복실행할 코드

}


foreach문의 선언


foreach ( 데이터형식 변수명 in 배열_또는_컬렉션)

{

     //실행할 코드

}

foreach 문은 배열(또는 컬렉션)을 순회하며 각 데이터 요소에 접근하고, 끝에 도달하면 반복이 종료된다

// int[] arr = new int[] { 1 , 2 , 3 , 4 }; 배열의 선언및 초기화방식이다 정수형 배열 자료형 : int[]


ex)

foreach( int a in arr)

{

Console.WriteLine(a);

}


코드의 무한반복 - for( ; ; ) or while( true )


점프문


break , continue , goto , return , throw

실행시 코드의 흐름을 끊고 프로그램의 실행위치를 원하는 지점으로 이동시킬 수 있는 문장


break문


break문은 현재 실행중인 반복문이나 switch 문의 실행을 중단할때 쓰임. break 문 실행시 반복문이나 switch문에서 빠져나와 다음 코드로 옮겨진다.


continue문


continue문 실행시 다음코드를 무시하고 반복문을 진행시킴. continue문은 주로 반복문에서 코드를 1회 건너뛰어 반복을 계속 수행하는데 쓰임. 

continue문을 다른 코드로 대체할 수 있지만 continue 문을 사용하면 코드의 가독성을 높일 수 있다


goto문


goto문의 사용형식


goto 레이블;


레이블 :

 // 이어지는 코드

// 레이블은 표지판같은존재로 goto 문이 실행되면 goto 문 뒤에 써있는 레이블과 같은 레이블이 선언된곳으로 이동하여 그 뒤부터 코드를 실행한다

goto 문은 코드를 끊고 이동하기때문에 흐름을 찾기 어려워져 별로 사용하지 않는 방식 . 주로 많이 중첩된 반복문을 한번에 뚫고 나올때 사용된다 .


/*

return 문 


throw 문

*/ // 13장 학습 후 추가할 내용



'C#언어 > 뇌자극C#5.0' 카테고리의 다른 글

C# : Chapter -6 클래스  (0) 2017.12.08
C# : Chapter -5 메소드  (0) 2017.12.08
C# : Chapter -3 연산자  (0) 2017.12.07
C# : Chapter -2 데이터  (0) 2017.12.06
C# : Chapter -1 C#의 골격  (0) 2017.12.06

산술 연산자 


 *   +   -   /   % 

수치형식에 대해서만 사용 가능


증가연산자와 감소연산자


++a 전위 증가 연산자 : 피 연산자의 값을 1 증가시킨 후 문장실행 

a++ 후위 증가 연산자 : 문장실행 끝난 후 피 연산자의 값을 1 증가

-- a  전위 감소 연산자 : 피 연산자의 값을 1 감소시킨 후 문장실행

a --  후위 감소 연산자 : 문장실행 끝난 후 피 연산자의 값을 1 감소


문자열 결합 연산자


string result  = "123" +"456" - > result의 값은 문자열 123456 저장

// 문자열끼리의 연산에서 + 연산자는 문자열 결합 연산자임을 알 수 있음


관계 연산자


<  <=  >  >=  == !=

두 연산자 사이의 관계를 비교하여 맞으면 True , 틀리면 False 반환


논리 연산자


&&  ||  !

&& 논리곱 연산자 : 피 연산자 두개의 진리값이 True라면 True 반환

||  논리합 연산자 : 피 연산자 두개의 진리값중 하나라도 True 라면 True 반환

!   부정 연산자 : 피 연산자의진리값이 True 라면 False, False 라면 True 반환

/*  보통 bool 형식의 자료형과 같이 사용됨 ( 논리형식 자료형)  */


조건 연산자


조건식 ? True 일때 값 : False 일때 값

True 일때의 값과 False 일때의 값은 같은 형식이어야함 ( 같은 변수에 저장할 것이므로)


비트 연산자


<<  >>  &  |   ^  ~


<<  >> 시프트 연산자 : 비트를  왼쪽이나 오른쪽으로 이동시킴 ex ) a >> 2 , b << 3

* 왼쪽으로 이동시킬때는 비트가 비게되면 양수 음수 둘다 0이채워지지만 오른쪽으로 이동시킬 때는 비트가 빌때 양수는 0 음수는 1이 채워지게 된다


// {0: D5}  - 5자리를 설정하고 10진수로 표현하여 0번째 자리에있는 변수의 값을 표현하여라

   {1: X8}  - 8자리를 설정하고 16진수로 표현하여 1번째 자리에 있는 변수의 값을 표현하여라


& |  ^ ~ 비트 논리 연산자 : 비트마다 True와 False (1과0)을 비교하여 논리연산

& 논리곱연산자 : 피 연산자 두개의 각 비트값이 모두 True(1) 라면 True (1) 반환

||  논리합연산자 : 피 연산자 두개의 각 비트값중 하나라도 True(1) 라면 True(1) 반환

^  배타적논리합연산자 : 피 연산자 두개의 각 비트값이 서로 다르면 True(1) 반환

~  보수 연산자 : 피 연산자의 비트값이 True(1) 이라면 False(0) 반환 , False(0) 이라면 True (1) 반환


할당연산자 


= += -= *= /= %= &= |= ^= <<= >>=

왼쪽의 피 연산자에 연산한 결과를 할당함



데이터


상수, 열거형, 기본데이터형식, 복합데이터형식(구조체, 클래스, 배열)


값형식, 참조형식으로 구분


변수- 변할수 있는 값


변수의 선언 - 컴파일러에게 이 변수에 필요한 공간을 예약하라고 알리는 것 


int x;

데이터 형식 식별자 (함수의 이름);


값 형식 - 변수가 값을 담는 데이터 형식 , 스택에 저장  ex) int, double ....

참조 형식 - 값이 있는 곳의 위치(참조) 를 담는 형식, 힙에 데이터저장, 스택에 저장된 데이터의 주소값 저장 ex) 문자열형식 , object형식


스택에 저장된 값은 알아서 프로그램 종료와 함께 순서대로 사라짐.

힙에 저장된 값은 스스로 사라지지 않기 때문에 더이상 사용되지 않을때 가비지 컬랙터에의해 수거되어짐. - 프로그램 종료시에도 남아있음.


오버플로우 - 데이터형식의 크기를 넘어서는 값이 담겨졌을때 넘치는것.


숫자 데이터 형식 - 정수형식(byte , sbyte , short , ushort , int , uint , long , ulong , char) , 부동 소수점 형식(float , double) , Demical형식

문자 형식, 문자열 형식 -char , string

논리 형식 - bool

object 형식 - 상속 효과로 모든 데이터를 참조형식으로 다 담을 수 있다 (박싱 , 언박싱)

박싱

object a = 20;

언박싱

int b = (int)a;

object c = (object)a;


(  ) - 데이터 형식 변환 , 왼쪽의 자료형을 그대로 써주면 된다


문자열을 숫자로 변환 - Parse(); 메소드 이용


int a = int.Parse("12345");

float b = float.Parse("123.45");

string c = "12345";

int d = int.Parse(c);

int e = Convert.ToInt32(c);


숫자를 문자열로 변환 - ToString(); 메소드 이용


int a = 12345;

string b = a.ToString();

double c  = 123.45;

string d = c.ToString();


상수와 열거 형식 - 값을 바꾸지 말아야 할 변수의 값이 변경되는것을 막아줄 수 있음


상수 선언

const 자료형 상수명 = 값;

열거 선언 - 같은 범주에 속하는 여러개의 상수를 선언할때 유용 , 초기화 안할시 0부터 1씩증가하며 할당됨.

enum 열거형식명 : 기반자료형 {상수1,2,3,4....} 


enum DialogResult ={yes,no,cancle}

int a = (int)DialogResult.yes - DialogResult.yes 는 DialogResult 형식이기때문에 int 자료형으로 형변환을 해줘야한다.

DialogResult result = DialogResult.yes; - DialogResult 를 자료형식으로도 활용 가능하다


Nullable 형식 - 비어있는 상태가 될 수 있는 형식


int? a; = null;

double? a = null;


Nullable 형식은 HasValue 속성과 Value 속성을 가지고 있다


HasValue - 값을 가지고 있는지 아닌지 확인

int a = 20;

a.HasValue - True ( 값이 있으면 True , 없으면 False 반환)

a.Value - 20 ( 값 반환)


var 형식 - 컴파일러가 알아서 자료형을 정해줌 ( 얕은검사 - 컴파일러가 오류를 잡아내기 어려워지는대신 코딩이 편해짐 , 항상 선언과 동시에 초기화)

var 형식은 지역변수로만 사용 가능 ( 클래스는 생성자를이용해 생성하기때문에 선언과 동시에 초기화하는것이 힘들기 때문)


GetType() ; 메소드  : a.GetType  - 자료형 반환

Console.WriteLine("abc:{0},{0},{1}",a,b}; 중괄호 안의 숫자로 몇번째 변수를 불러들여올것인지 정할 수 있음. a,b는 문자열,자료형,변수 전부 될 수 있음

string 은 System.String 에서 using System 을 이용해 네임스페이스를 언급하지않고 사용할 수 있게 된것임. 근본적으로 같음


+ Recent posts