윈도우즈프로그래밍#5

LeeMir, 25 March 2021

문장


배정문
  • 값을 변수에 저장하는데 사용
  • 형태
    • remainder = dividend % divisor;
    • i = j = k = 0; // 오른쪽에서 왼쪽으로 배정이 진행됨
    • var op = exp;
  • 형 변환
    • 묵시적 형 변환 : 컴파일러에 의해 자동
      • 오른쪽 변수의 형보다 왼쪽 변수의 형이 더 클 경우 발생
      • 왼쪽 변수의 형이 더 작을 경우 오류 발생
    • 명시적 형 변환 : 프로그래머가 캐스트(cast) 연산자
혼합문
  • 여러 문장을 한데 묶어 하나의 문장으로 나타냄
    • 주로 문장의 범위를 표시
  • 형태
    • if(a > b) a--; b++;
    • if(a > b) { a--; b++; }
  • 지역변수(Local Variable)
    • 블록{ }의 내부에서 선언된 변수
    • 선언된 블록 안에서만 참조 가능
    • 밖(상위)에 있는 블록에서 선언된 지역변수와 같은 이름의 지역변수를 선언하면 오류 발생
      • 메쏘드 밖(클래스)에 있는 변수와 메쏘드 안에 있는 변수의 이름은 같아도 됨
        • ClassName.value로 접근하면 되기 때문
제어문
  • 프로그램의 실행 순서를 바꾸는 데 사용
  • 조건문
    • if 문
      • 조건에 따라 실행되는 부분이 다를 때 사용
      • 조건식의 연산결과 : 논리형(true or false)
      • 내포된 if 문
        • if 문 안에서 if 문이 반복
    • switch 문
      • 조건에 따라 여러 경우로 처리해야 되는 경우 사용
      • case 뒤에는 상수식이 와야함
      • default의 의미는 otherwise
      • break 문을 사용하여 탈출
        • 각 case마다 break는 필수로 사용해야하며, goto를 사용할 시 break를 쓰지 않아도 됨
      • 해당하는 case로 점프를 하기 때문에 if-else보다 효율적임
  • 반복문
    • 정해진 횟수만큼 일련의 문장을 반복
    • for 문
      • for(<식1>;<식2>;<식3>)
        • <식1> : 제어 변수 초기화
        • <식2> : 제어 변수를 검사하는 조건식
        • <식3> : 제어 변수의 값을 수정
      • <식1> => <식2> => <실행문> => <식3> => <식2> 순서로 실행
      • 무한루프 : for(;;)
      • 내포된 for 문
        • for 문 안에 또 다른 for 문
        • 주로 다차원 배열을 다룰 때 사용
    • while 문
      • while(<조건식>) <문장>
      • <조건식> => <문장> => <조건식> 순서로 실행
    • do-while 문
      • do <문장> while(<조건식>)
      • 반복되는 문장을 먼저 실행한 후에 조건식을 검사
    • foreach 문
      • foreach(자료형 변수명 in 데이터의 집합)
      • 데이터의 집합에 대한 반복을 수행
  • 분기문
    • break 문
      • break;
      • 블록 밖으로 제어를 옮기는 역할
      • 가장 가까운 반복문에 대해 탈출함
    • continue 문
      • continue;
      • 다음 반복이 시작되는 곳으로 제어를 옮기는 기능
      • while문에서 사용시 <조건식>으로 이동하고, for문에서 사용시 <식3>으로 이동
    • goto 문
      • goto label;
      • goto case constant-expression;
      • goto default;
      • 지정된 위치로 제어 흐름을 이동
      • goto 문이 분기할 수 없는 경우
        • 외부에서 복합문 안으로 분기
        • 메소드 내에서 외부로 분기
        • finally 블록에서 블록 밖으로 분기
    • 오버플로 검사문
      • checked 문
        • checked { }
        • 오버플로를 명시적으로 검사하는 문장
          • System 네임스페이스에 있는 OverflowException 예외가 발생
        • 오버플로를 의도적으로 검사하지 않을 경우 unchecked 문을 사용함
표준 입출력
  • 입출력 장치가 미리 정해진 입출력을 의미
  • C# 언어의 기본 네임스페이스인 System으로부터 제공
  • 표준 입력 메소드
    • Console.Read()
      • 키보드로부터 한 개의 문자를 읽어 그 문자의 코드값(유니코드)을 정수형으로 반환하는 기능
    • Console.ReadLine()
      • 한 라인을 읽어 string형으로 반환하는 기능
      • 숫자 값으로 바꿔야 하는데 정수인 경우
        • int.Parse() 사용
  • 표준 출력 메소드
    • Console.Write()
      • 화면에 매개 변수의 값을 출력
    • Console.WriteLine()
      • 화면에 매개 변수의 값을 출력한 후 다음 라인으로 출력 위치를 이동
  • 형식화된 출력
    • 출력하려는 값에 포맷을 명시하여 원하는 형태로 출력
    • 출력 포맷의 형태
      • {N[,W][:formatCharacter]}
      • N : 매개변수를 위치적으로 지칭하는 정수(0부터 시작)
      • W : 출력될 자릿수의 폭을 나타내며 선택으로 명시
        • ’-‘ 기호를 붙이면 좌측정렬로 출력
      • formatCharacter : 한 문자로 이루어진 형식 지정 문자를 의미