오늘은 코딩의 시작이라는 if문을 시작한다.
if는 조건문으로 만약 조건이 참이라면 그것을 실행하고 거짓이면 실행하지 않는 기능이다
사용법 : 조건식이 참(true)이면 실행문이 실행됨
// if(조건식) {
// 실행문;
// }
// 예제 1) 19살 이상이면 성인입니다. 를 출력하세요.
let num = 20;
// 조건문
if(num >= 19) {
/ alert("성인입니다.");
}
else문은 if문의 조건이 참이지 않을 결우 실행되는 값을 담을 수 있다.
사용법 : 조건식이 참이면 실행문 이 실행되고, 아니면 실행문2 실행됨
//if(조건식) {
// 실행문;
// } else {
// 실행문2;
// }
// 예제 2) 19살 이상이면 성인입니다. 를 출력하고,
// 19살 미만이면 미성년입니다. 를 출력하세요
let num = 20;
if(num >= 19) {
alert("성인입니다.");
} else {
alert("미성년입니다.");
}
// TODO: 조건식 3) if/else if/else 문
// TODO: 사용법 : 조건식이 참이면 실행문일 실행되고,
// TODO: 위가 아니고, 조건식2가 참이면 실행문2가 실행되고,
// TODO: 모두 아니면 실행문3이 실행됨
// if(조건식) {
// 실행문;
// } else if(조건식2) {
// 실행문2;
// } else {
// 실행문3;
// }
// 예제 3) 19살 이상이면 성인입니다. 를 출력하고,
// 18살 이면 청소년입니다. 를 출력하고,
// 17살 이하이면 미성년입니다. 를 출력하세요
let num = 18;
if(num >=19) {
alert("성인입니다.");
} else if(num == 18) {
alert("청소년입니다");
} else {
alert("미성년입니다");
}
컴퓨터에는 cpu와 DRAM라는 것이 존재하는데, cpu는 계산장치이고 DRAM은 기억장치이다.
컴퓨터는 0과 1의 숫자만 인식하는데, 이 0,1이 컴퓨터의 최소단위인 bit이다. 이것들을 조합해서 문자나 숫자들을 만든다.
cpu연산단위 : 예전에는 4비트가 1개의 숫자를 나타냈다면 요즘은 32bit가 1개의 숫자나 문자를 나타낸다. 숫자가 커질수록 성능이 증가한다.
8bit = 1byte
1kb = 1024byte
1mb = 1024kb
1 gb = 1024 mb
1 tb = 1024 gb
1 hb = 1024tb
사실 비트연산은 실무에서 많이쓰이지는 않지만 비트를 계산하는 일이 있을 수 있기에 알아 놓는 것이 좋다.
0과 1만을 서로 연산하는것 , 즉 2진수 연산이다. 내부적으로 2진수로 계산하고 다시 10진수로 내보내어 준다.
비트연산자의 종류 에는 "and, or, not, xor" 4가지가 있다.
and 표기법 : &
기존에 배웠던 것에서 &하나가 없다.
or 표기법 : |
기존에 배웠던 것에서 |하나가 없다.
not 표기법 : ~
값을 반전시킨다.
xor 표기법 : ^
서로 다르면 1이되고 같으면 0이 된다
예제 1)
let num = 2;
let num2 = 3;
alert(num & num2); // 내부적으로 비트연산해서 십진수로 보여줌
결과

왜 2가 나오는 것일까?
1) num = 2 => 010
2) num2 = 3 => 011
& 비트 연산 => 010 => 2
alert(num & num2); // 내부적으로 비트연산해서 십진수로 보여줌
&연산은 각자리의 숫자의 두 숫자를 비교한다. 그래서 0과 1, 0과 0이면 0
1과 1이면 1을 나타낸다.
위에서 보면 num은 010, num2는 011이다. 첫째자리에서 00이므로 0, 두번째는 11이므로 1, 세번째는 01이므로 0. 따라서 결과는 010인 숫자 2가 된다.
예제 2)
let num = 2;
let num2 = 3;
alert (num | num2);
결과

이것은 and와 다르게 1과0이면 1로 기록된다. 그래서 011이 되어 3이 되는 것
예제 3)
let num = 3
alert(~num);
결과

모든 0과 1을 바꾸는 것이다 그래서 젤 앞의 부호비트도 바뀌고, 3은 011이면 100이 된다. 그래서 -4가 되는 것이다.
예제 4)
let num = 2;
let num2 = 3;
alert(num ^ num2);
결과

두개의 숫자가 같으면 0 다르면 1이라서 1이다.
반복문이 없어도 코딩은 가능하다. 그런데 왜 나왔을까
hello를 다섯번 출력해보자.
alert("Hello");
alert("Hello");
alert("Hello");
alert("Hello");
alert("Hello");
근데 이걸 백번, 수천 수만번하라고 하면 귀찮을 뿐더러 가독성도 떨어진다.
그럼 굉장히 복잡하고 어려워질 수 밖에 없으니 이를 해결하귀 위해 우리는 반복문을 사용할 수 있다.
for (let i = 0; i < 5; i++) {
alert("Hello");
}
이 코드만 입력해도 위의 5번 반복과 같아진다. 몇천개가 된다고해도 i뒤의 숫자만 바꿔주면 된다.
사용법
for(초기값;조건식;증감식) {
실행문(반목문);
}
여기서 조건식이 참이면 계속 실행하고 거짓이면 중단하게 된다.
i가 0부터 시작했다가. 반복문을 실행하고 조건문을 비교했다가 참이면 또 실행문을 실행하고, 또 조건문과 비교하고 이것을 반복한다. 그래서 조건문과의 비교에서 거짓이 나오면 반복을 멈춘다.
i가 4일때는 5보다 작으니 실행되고 i가 5로 증가되고 조건문과 비교하면 5는 5보다 작지 않으니 조건문은 거짓이되고 이것은 반복을 중단하게 된다.
오늘은 조건문과 반복문을 배웠는데, 나는 이게 코딩중에 제일 재밌는 부분인거 같다. 뭔가 이것들을 이용해서 만들 수 있는 것도 많고, 생각도 많이 할 수 있는거 같아서 재밌다.
앞으로는 더 재밌는 것들만 남아있을거같아서 설렌다.
오늘은 그리고 정처기 필기 수업을 시작했다. 생각보다 이론인데도 재밌었고 배우는 것도 많은 것 같았다. 오늘 배운거는 소프트웨어를 설계하는 과정과 변수들, 연산자들, 진수법 등을 배웠는데 기억에 남는 건 애자일방법이다.
애자일 방법은 프로그래밍을 만들때 개발자들이 짧은 주기를 돌리며 짧은 시간안에 결과를 내며 회고도 자주하며, 클라이언트의 요구도 자주 반영하는 그런 방법이었는데 소통도 많이 필요하고 좀 동적인 방법의 프로그래밍 방법이었다. 실제로 현장에서는 이게 지켜질지는 모르겠지만 매우 자유롭고 동적여 보였다. 이런것을 보며 현장을 상상하니 뭔가 재밌었다. (실제로는 많이 다르겠지만)
오늘은 7시반에 일어나 10시까지 거의 고등학생으로 돌아간거 같다. 그래도 전혀 피곤하진 않다. 내일도 잘 지내자