(C#) 13. 구구단
이중 루프를 처음 써본 예제. 바깥과 안쪽 루프가 각각 무엇을 세는지, 루프 순서를 바꾸면 출력이 어떻게 달라지는지, 표처럼 가로로 찍으려면 무엇이 필요한지 정리했다.
이중 루프를 처음 써본 예제. 바깥과 안쪽 루프가 각각 무엇을 세는지, 루프 순서를 바꾸면 출력이 어떻게 달라지는지, 표처럼 가로로 찍으려면 무엇이 필요한지 정리했다.
같은 이름의 함수를 여러 개 두는 오버로딩과 기본값 매개변수. 반환형은 구분에 안 쓰인다는 것, 둘을 섞으면 어느 쪽이 불리는지 애매해지는 것, 기본값이 호출부에 박힌다는 것을 확인했다.
값을 복사해 넘기는 기본 동작과 ref/out의 차이를 Swap과 Divide로 확인했다. 클래스를 ref 없이 넘겼을 때 멤버 수정은 반영되는데 재할당은 안 되는 이유까지 정리했다.
반복되는 코드를 함수로 묶으면서 확인한 것. 매개변수가 복사본이라 안에서 바꿔도 밖이 안 바뀐다는 점과, static이 붙은 이유, 클래스 이름을 생략할 수 있는 조건을 정리했다.
소수 판정으로 break를, 배수 찾기로 continue를 확인했다. 1을 넣으면 소수로 나오는 버그, while에서 continue가 무한 루프가 되는 이유, 중첩 루프에서 break가 하나만 빠져나오는 문제를 정리했다.
while로 쓰던 반복을 for로 옮기면서 확인한 것. 초기화·조건·증감을 한 줄에 모으는 것 말고도 반복 변수의 수명이 달라진다는 점, 실수로 무한 루프가 되는 형태를 정리했다.
조건이 참인 동안 반복하는 while과, 최소 한 번은 실행하는 do-while의 차이. 입력 루프에서 ReadLine이 null을 돌려줄 때 무한 루프가 되는 문제까지 확인했다.
지금까지 배운 것을 합쳐 만든 첫 프로그램. 숫자가 아닌 입력에서 그대로 죽는 문제, 범위 밖 값이 조용히 통과하는 문제, 그리고 9갈래 중첩 if를 나머지 연산 한 줄로 줄인 과정을 남긴다.
같은 변수를 값별로 나눌 때 쓰는 switch. C#은 C와 달리 case가 아래로 흘러내리는 걸 컴파일 단계에서 막는다는 점과, 여러 case를 묶는 법·switch 식까지 정리했다.
조건에 따라 갈라지는 코드를 처음 써보며 정리한 것. else if가 별도 문법이 아니라는 점, 중괄호를 생략하면 생기는 문제, 매직 넘버를 enum으로 바꿔야 하는 이유까지.