
조건을 만족하는지 여부에 따라 코드를 제어할 수 있는 조건문
변수에 일치하는 경우의 값에 따라 코드를 제어할 수 있는 선택문
특정 코드를 여러 번 반복해서 실행할 수 있도록 하는 반복문

<script>
const pass = 60;
const score = 90;
const hasPassed = score >= pass;
const el = document.getElementById("answer");
el.innerHTML = "합격여부: " + hasPassed;
</script>


<script>
const score1 = 90;
const score2 = 95;
const highScore1 = 75;
const highScore2 = 95;
const comparison = score1 + score2 > highScore1 + highScore2;
const el = document.getElementById("answer");
el.innerHTML = "신기록 달성: " + comparison;
</script>

<script>
const score1 = 8;
const score2 = 8;
const pass1 = 6;
const pass2 = 6;
const passBoth = score1 >= pass1 && score2 >= pass2;
const msg = "두 회차의 시험합격 여부: " + passBoth;
const el = document.getElementById("answer");
el.innerHTML = msg;
</script>

<script>
const score1 = 8;
const score2 = 8;
const pass1 = 6;
const pass2 = 6;
// 두 회차 모두 합격했기 떄문에
const minPass = score1 >= pass1 || score2 >= pass2;
// 부정연산자를 이용하여 값이 반대로 출력되게
const msg = "재시험 필요여부: " + !minPass;
const el = document.getElementById("answer");
el.innerHTML = msg;
</script>

<script>
let num = 10;
let (num < 500) {
document.write('hello');
}
// 아래의 조건식은 거짓이기 때문에 출력이 되지 않음
let num = 10;
let (num > 500 ) {
document.wirte('world');
}
</script>

if(조건식){
실행문1;
} else {
실행문2;
}
<script>
const animal = 'kittty';
let result = '';
if(animal === 'kittty'){
result = 'cute';
} else {
result = 'still nice';
}
document.write(result);
</script>
<script>
const num = prompt("당신이 좋아하는 숫자는?","0");
if(num % 2 == 0) {
document.write("당신이 좋아하는 숫자는 짝수입니다.");
} else {
document.write("당신이 좋아하는 숫자는 홀수입니다.");
}
</script>

<script>
const result = confirm("정말로 회원을 탈퇴하시겠습니까?");
if(result) {
document.write("탈퇴 처리되었습니다!");
} else {
document.write("탈퇴 처리가 취소되었습니다!");
}
</script>

if(조건식 A){
실행문 a; // 조건식 A가 참일 때 실행한다.
} else if (조건식 B) {
실행문 b; // 조건식 A가 거짓, 조건식 B가 참일 때 실행한다.
} else {
실행문 c; // 조건식 A와 B가 모두 거짓일 때 실행한다.
}
100이상 입력 : '입력한 숫자는 100이상입니다.'
50~99 입력 : '입력한 숫자는 50이상 99이하입니다.'
0~49 입력 : '입력한 숫자는 0이상, 49이하입니다.'
0이하 입력 : '입력한 숫자는 음수입니다.'
<script>
let num = prompt("원하는 숫자를 입력하세요.","");
if(num >= 100){
document.write("입력한 숫자는 100 이상입니다.");
} else if (num >= 50 && <= 99) {
document.write("입력한 숫자는 50이상 99이하입니다.");
} else if (num >= 0 && <= 49) {
document.write("입력한 숫자는 0이상 49이하입니다.");
} else {
document.write("입력한 숫자는 음수입니다.");
}
</script>

swich(변수 또는 식){
case 값1 :
실행할 문장 1;
break;
case 값2 :
실행할 문장 2;
break;
default:
실행할 문장3;
}
// 기본문법 연습
<script>
let subject = "javascript";
swich (subject){
case "html";
subject += "은 1학점입니다."; //subject = subject + '은 1학점입니다.';
break;
case "css" :
subject += "은 2학점입니다."; //대입연산자로 줄임
break;
case "javascript" :
subject += "은 3학점입니다.";
break;
default :
subject += "해당 과목이 없습니다.";
}
document.write(subject, "<br>");
</script>
// 문자형으로 조건 지정
<script>
let c = "A";
swich (c) {
case "A" :
document.write("A라는 문자입니다." + "<br>");
break;
case "하" :
document.write("하 라는 문자입니다." + "<br>");
break;
case "7" :
document.write("7 이라는 문자입니다." + "<br>");
break;
default :
document.write("해당되는 문자가 없습니다." + "<br>");
}
</script>
// 숫자형으로 조건 지정
<script>
let i = 365;
swich (i) {
case 66 :
document.write("66이라는 정수입니다." + "<br>");
break;
case 365 :
document.write("365라는 정수입니다." + "<br>");
break;
case 1000 :
cdocument.write("1000이라는 정수입니다." + "<br>");
break;
default :
document.write("해당 숫자가 없습니다." + "<br>");
}
</script>
// 문자형으로 조건 지정
<script>
let ipad = "ipad mini6";
swich (ipad) {
case "ipad Air" :
document.write("30만원대 입니다." + "<br>");
break;
case "ipad mini6 :
document.write("40만원대 입니다." + "<br>");
break;
case "ipad Pro" :
document.write("50만원대 입니다." + "<br>");
break;
default :
document.write("해당되는 내용이 없습니다." + "<br>");
}
</script>

<script>
const site = prompt("네이버, 다음, 네이트, 구글 중 즐겨 사용하는 포털 검색 사이트는 ?","");
let url;
swich (site) {
case "구글" :
url = "www.google.com";
break;
case "다음" :
url = "www.daum.net";
break;
case "네이버" :
url = "www.naver.com";
break;
case "네이트" :
url = "www.nate.com";
break;
default :
alert("보기 중에 없는 사이트입니다.");
}
if (url) location.href = "http://" + url; //location은 url정보를 가져오는 객체
</script>

<script>
const game = prompt("가위, 바위, 보 중 선택하세요!","");
let gameNum;
swich (game){
case "가위" :
gameNum = 1;
break;
case "바위" :
gameNum = 2;
break;
case "보" :
gameNum = 3;
break;
defult :
alert("잘못 입력하셨습니다.");
location.reload(); //새로고침(F5)
const com = Math.ceil(Math.random() * 3); //가장 큰 정수로 올림, 점수 1, 2, 3의 랜덤값 생성
// 컴퓨터 랜덤값 출력
document.wrtie('<img src="images/math_img_' + com + '.jpg">');
// 사용자랑 컴퓨터랑 비교해서 맞았는지 틀렸는지 출력
if (gameNum == com){
document.write('<img src="imges/game_1.jpg">');
} else {
document.write('<img src="imges/game_2.jpg">');
}
</script>

[false로 취급될 수 있는 값들]
| 값 | 설명 |
|---|---|
| const highScore = false; | 전형적인 불리언 false |
| const highScore = 0; | 숫자 0 |
| const highScore = ''; | NaN(not a number, 숫자가 아님) |
| const highScore = 10/'score'; | 빈 값 |
| const highScore; | 아직 값을 대입하지 않은 변수 |
[true로 취급될 수 있는 값들]
| 값 | 설명 |
|---|---|
| const highScore = true; | 전형적인 불리언 true |
| const highScore = 1; | 0이 아닌 다른 숫자 |
| const highScore = 'carrot'; | 내용을 가진 문자열 |
| const highScore = 10/5; | 계산된 숫자 |
| const highScore = '0'; | 문자열로 표현된 숫자 0 |
| const highScore = "false"; | 문자열로 표현된 false |
for - 일정한 횟수만큼 코드를 반복 실행해야 한다면 for루프가 가장 적합하다. 가장 일반적으로 사용되는 루프다. for루프의 조건식은 횟수를 세는 카운터이며 이를 통해 몇 번의 루프가 실행되어야 하는지를 명확하게 결정할 수 있다.
while - 반복 실행할 횟수를 정확히 알지 못한다면 while루프를 사용하는 것이 좋다. 이 루프는 카운터 대신 다른 조건식을 사용하며, 코드 블록의 실행은 이 조건식이 true를 리턴하는 한 계속 반복된다.
do while - 일단 한 번 실행한 후 조건을 검사하여 참인동안 계속 반복 실행한다. 즉 조건식이 false를 리턴하더라도 우선 코드블록은 한 번 실행한 후 루프를 시작한다.
조건에 따라 while 문은 한 번도 실행되지 않을 수 있지만, do while은 한 번은 무조건 실행된다는 차이점이 있다.
키워드
루프와 배열
성능 이슈
초기값;
while(조건식) {
실행문;
증가감식;
}
<script>
let i = 0;
while (i > 10) {
document.write("반복문 연습 <br>");
i++;
}
</script>

<script>
// 1부터 7더하기
let n = 1;
let sum = 0;
while (n < 8) {
sum += n; // sum = sum + n;
n++;
}
document.write(sum, '<br>');
// 1부터 100더하기
let sum2 = 0;
let i = 1;
while(i < 101) {
sum2 += i;
i++;
}
document.write("정답은 : ", sum2, "입니다");
</script>

<script>
let i = 20;
while (i >= 10) {
if(i % 2 == 0) {
document.write("<p class='blue'>" + i + "</p>");
} else {
document.wrtie("<p class='red'>" + i + "</p>");
}
i++;
}
</script>

for (let i = 0; i < 10; i++;)
초기값 조건식 증가감식
초기값 - 루프가 처음 실행될 때 i란 이름을 가지며 카운터 처럼 동작한다.
조건식 - 루프는 카운터가 일정한 값에 도달할 때까지 계속해서 실행된다. 변수 i가 0으로 루프는 실행을 멈추기까지 10번 실행된다.
증가감식 - 루프는 중괄호 내의 코드를 실행할 때마다 카운터의 값에 1을 더한다. 변수 i에 ++연산자를 이용하여 1을 더한다.
for (let i = 0; i < 10; i++) {
document.write(i);
}
<script>
for (let i = 1; i <= 10; i++) {
document.write("반복문 연습" + i, "<br>");
}
</script>

<script>
let sum = 0;
for(let i = 1; i < 100; i++) {
sum += i;
}
document.wrtie("정답은: ", sum, "입니다.", "<br>");
</script>

<script>
const scores = [24, 32, 17];
const arrayLength = score.length;
let roundNumber = 0;
let msg = "";
for (let i = 0; i < arrayLength; i++) {
roundNumber = i + 1;
msg += "응시회차 " + roundNumber + " : ";
msg += score[i] + "<br>";
}
document.getElementById("answer").innerHTML = msg;
</script>

for(초깃값; 조건식; 증감식) {
break; //반복문을 강제로 종료
자바스크립트 코드;
}
var 변수 = 초기값;
while(조건식) {
break; //반복문을 강제 종료
자바스크립트 코드;
증감식;
}
<script>
for(let i = 1; i < 10; i++) {
if(i === 6) {
break;
}
document.write('coding' + i + '<br>");
}
</script>

for (초기값; 조건식; 증가감) {
continue;
자바스크립트 코드;
} // continue다음에 오는 코드는 무시하고 바로 증가감식을 실행하라.
var 변수 = 초기값;
while(조건식) {
증감식;
continue;
자바스크립트 코드;
} // continue다음에 오는 코드는 무시하고 바로 조건식으로 이동해 조건식 검사를 실행하라.
<script>
for (let i = 0; i < 10; i++) {
if (i === 5) {
continue;
}
document.write('coding test' + i + '<br />'
}
</script>

FOR (변수 OR 배열) {
반복동작부분
}
<script>
const fruits = ['apple','banana','orange'];
for (const fruit of fruits){
console.log(fruit);
}
// 배열의 lenght가 3이니까 3번 반복하면서 변수 fruit에 요소들이 순서대로 할당된 것이다.
// index를 가져오지는 못하기 때문에 index가 필요한 경우라면 다른 메서드를 활용해야 한다.
</script>

Object.keys(obj);
<script>
const car = {
maker : 'BMW',
quantity : 100,
option : true,
}
//전체 키를 배열로 얻는 코드
document.write(Object.keys(car) + '<br>');
//전체 값을 배열로 얻는 코드
document.write(Object.values(car) + '<br>');
//배열에 대해서 각 구성 항목을 참조하는 코드
for (const 1 of Object.values(car){
document.write(i);
}
</script>

for (변수 in 객체) {
반복동작부분
}
<script>
const car = {
maker: 'BMW',
color: 'red',
year: '2022',
}
for (const prop in car) {
console.log(prop, car[prop])
</script>

<script>
let list = [4, 5, 6];
//for in은 키의 목록을 반환한다.
for (let i in list) {
console.log(i);
}
//for of는 값을 반환한다.
for (let j of list) {
console.log(j);
}
</script>
