Webdeveloper_kim 2022. 1. 11. 11:54
728x90

일수로 2주차가 시작되었다. 수업에 앞서 용어하나에 대한 설명을 해 주셨다.

TDD - 테스트 주도형 개발의 약자이다.

프로그래밍에서 테스트는 매우 중요한데, 디자인 후 테스트코드를 작성 후 본 코드를 개발한다.

본인 코드에 대한 확신이 생기기 떄문에 개발시간이 더 들어가기는 커녕 오히려 줄어들게 된다.

 

중첩if문

위의 예제처럼 if문 안에 if문을 중첩시켜서 조건을 추가해줄수 있다.

헷갈릴 수 있으니 중괄호구분이 버릇이 되어야 한다.

 

위의 예제에서 주석처리 해놓은 중첩 if문은 이처럼 매번 중첩시키지 않고 적절한 조건으로 한번만 중첩시킬 수도 있다.

코드는 하나만 있는 것이 아니라 여러 방법의 더욱 효율적인 코드가 있을 수 있으니 항상 고민하는 버릇을 들이자.

 

switch문

단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고 표현이 간결해 if문보다 가독성이 높다는 장점이 있지만 여러 제약을 가지고 있다.

우선 if문은 boolean의 결과값을 가져오는 어떤 연산자든 사용가능하지만 switch문은 오로지 동등비교연산(==)밖에 하지 못한다.

또한 case의 값에는 리터럴과 상수만 가능하다.(정수와 문자열만 가능) 이 문자열 마저도 1.7버전 이후에나 가능해졌다

=> 범위연산을 하지 않아도 될 때 사용하는 것이 좋다.

이런 제약들 때문에 실제 사용빈도는 낮은 편이다.

 

위의 예제는 책의 예제를 아주 살짝 수정하여 계절별 case가 하나가 되게 수정한 것이다.

 

위의 예제는 무작위 난수를 이용해 컴퓨터와 가위바위보를 하는 프로그램이다.

0이상 1미만의 난수를 무작위로 하나 return하는 Math.random()은 앞으로도 수많은 프로그램에 활용되는 메서드이니 꼭 기억해두자.

위의 코드는 윷놀이 프로그램이다. 단순히 도개걸윷모 5가지의 값이 아닌 확률이 포함시키기 위해 난수를 이용하였다.

이방법 외에도 오로지 확률만을 가지고 하는 방법도 있고 다른 방법이 있을 수 있으니 항상 고민하는 버릇이 필요하다.

 

막간상식

리눅스 권한을 구글링해보면 퍼미션(시스템에서 유지되는 권한기능)에 관해 나온다.

읽기, 쓰기, 실행 권한을 순서대로 RWX라 하는데 각 자리를 권한이 있으면 1, 없으면 0으로 표기해 3자리 2진수로 볼 때,

읽기만 가능하다 = 100, 전부 안된다 = 000

예를 들어 퍼미션정보가 rwx - rx - rx라 하면 각 자리는 소유자에 대한 퍼미션 - 소유그룹에 대한 퍼미션 - 공개(모든사용자)에 해당된다.

고로 111-101-101이라 볼수 있고 3자리 2진수니 8진수로 표현해보면 755가 된다.

 

반복문

반복문은 어렵고 중요하다. for문, while문, do-while문이 있는데 do-while은 사용 빈도가 낮다.

반복문에서는 변수로 i를 활용하는데 iteration(반복)이라는 단어에서 유래된 것이다.

 

while문

while문의 구성은 다음과 같은데 if문과 그 구조가 같다.

while (조건식) {

   수행할 문장

}

조건식이 그저 true일 경우 수행할 문장을 무한히 수행하는 무한루프가 된다.

무한루프를 해결하기 위해서는 앞서 사용했었던 break를 사용하거나 증감연산자를 활용(가장 많이 활용)하는 방법이 있다.

 

for문

for문의 구성은 다음과 같다.

for ( 초기화(1) ; 조건식(2) ; 증감식(4) ) {

    수행할 문장(3)

}

초기화와 조건식, 증감식까지 괄호로 묶여있어 while문에 비해 line수가 적다.

여기서 중요한 것은 증감식이 적용되기 전에 수행할 문장부터 거친다는 것이다.(괄호로 순서를 표시해 놓았다.)

for문 안에서 변수를 선언 및 초기화했을 경우 for문 안에서만 활용 가능하다.

(중첩을 제외하고 여러 for문에서 같은 변수 i를 사용할 수 있는 이유)

for문에서는 반복횟수를 지정하는데 용이하다.

위처럼 while문과 for문을 서로 바꿀수 있다.

 

꿀팁 : 윈도우키 + shift + s => 원하는 부분 스크린샷이 가능하다.

 

오늘은 여기까지!

좀더 복잡한 조건, 반복문은 내일 이어서 하게된다.

728x90