230306 풀스택 3일차 - 반복문, 함수 다지기, 배열

황인성·2023년 3월 6일
0

지난시간 복습

while
0~10까지 찍어보기
let x = 0;
while (x <= 10) {
console.log(x);
x = x + 1;
}

// while문으로 구구단 출력하기

var dan = 3;
var i = 1;
while (i <= 9) {
  console.log(dan + " * " + i + " = " + dan * i)
  i++;
}
출력
"3 * 1 = 3"
"3 * 2 = 6"
"3 * 3 = 9"
"3 * 4 = 12"
"3 * 5 = 15"
"3 * 6 = 18"
"3 * 7 = 21"
"3 * 8 = 24"
"3 * 9 = 27"

for문으로 구구단 출력하기

var dan = 3;

for (var i = 1; i <=9 ; i++) {
console.log(dan + " " + i + " = " + dan i);
}

while문과 for문의 출력은 같다.

실무에서 for문은 지역변수(로직 안에서만 유효한 변수)이고
while문은 전역변수(모든 로직에 해당할 수 있는 변수)라서 다른 코드와 충돌이 일어날 수 있어서 실무에서는 for문을 많이 사용한다.

// while문으로 1~100전부 더한 값만 출력하기
var e = 1;
var sum = 0;
while (e <= 100) {
sum += e; // sum = sum + i
e++;
}
console.log(sum);

출력
5050

// 이중for문 쓰지 않고 for문으로 1단부터 3단까지 출력하기 (끝날때마다 단이 1단씩 추가되게)

var dan = 1;
for (var i = 1; i <= 9; i++) {
  console.log(dan + " * " + i + " = " + dan * i);  
}
dan = dan+1;
for (var i = 1; i <= 9; i++) {
    console.log(dan + " * " + i + " = " + dan * i);  
}
dan = dan+1;
for (var i = 1; i <= 9; i++) {
    console.log(dan + " * " + i + " = " + dan * i);  
}

이중 for문으로 1~9단까지 출력하기

for (var dan = 1; dan <= 9; dan++) {
  for (var i = 1; i <= 9; i++) {
    console.log(dan + " * " + i + " = " + dan * i);
  }
}

함수 복습
// 한국이라고 치면 안녕하세요, 미국이라고 치면 hello, 일본이라고 치면 곤니찌와라고 나오는 함수를 작성(매개변수)

function hello (mode) {
  if (mode == "한국") {
    return "안녕하세요."
  } else if (mode == "미국") {
    return "hello."
  } else if (mode == "일본") {
    return "곤니찌와"
  }
}
console.log(hello("일본"));

함수에서 함수 안에

return을 사용했으면 최종 출력할땐 console.log()안에 씌워줘야 하고
console.log();를 사용했으면 최종 출력할땐 그냥 함수명만 입력해도 나온다.

 function hello (mode) {
  if (mode == "한국") {
    return "안녕하세요."
  } else if (mode == "미국") {
    return "hello."
  } else if (mode == "일본") {
    return "곤니찌와"
  }
}
console.log(hello("일본"));

 function hello2 (mode) {
  if (mode == "한국") {
    console.log("안녕하세요."); 
  } else if (mode == "미국") {
    console.log("hello."); 
  } else if (mode == "일본") {
    console.log("곤니찌와"); 
  }
}
hello2("한국");  

함수와 반복문 응용
// 나라별 인사말을 함수로 출력하는데 매개변수를 추가해서 횟수옵션도 추가할 것. ex) function hello(mode, num)
// 예를들면 hello(한국, 3) 이라고 입력하면 "안녕하세요"가 3번 나오게 됨.

function hello (mode, num) {
  var msg = ''; // 공백으로 선언
  if (mode == "한국") {
    msg = "안녕하세요"; // if 조건에 따라 "안녕하세요."로 최신화
  } else if (mode == "미국") {
    msg = "hello"; // if 조건에 따라 "hello."로 최신화
  } else if (mode == "일본") {
    msg = "곤니찌와"; // if 조건에 따라 "곤니찌와."로 최신화
  }
  for (var i = 1; i<=num; i++) { // i = 시작할 횟수 초기화 및 지정
    console.log(msg); // 반복하게 할 내용
  }
}
hello("한국", 3);

모드가 들어와서 msg로 바뀌고 조건에 따라 msg가 안녕하세요, hello, 곤니찌와로 바뀝니다.
출력을 설정한 후에
for문으로 반복 설정해줍니다.
var i 로 초기화선언을 하고 num을 이용해서 반복할 범위를 설정하고 증감을 설정합니다.

// 매개변수 2개(dan, limit) 숫자값을 받아서 구구단을 출력해주는 함수를 만드시오(매개변수에 따라 n단의 xn단까지 출력할 수 있음)

function printDan(dan, limit) { // 매개변수 설정
  for (var i = 1; i <= limit; i++) { 
    // 변수 i는 1로 초기화 하고; i값을 limit이하로 지정; i값을 증가해라
    console.log(dan + " * " + i + " = " + dan * i);
  }
}
printDan(2, 9); // 2단의 9곱까지 출력
출력
"2 * 1 = 2"
"2 * 2 = 4"
"2 * 3 = 6"
"2 * 4 = 8"
"2 * 5 = 10"
"2 * 6 = 12"
"2 * 7 = 14"
"2 * 8 = 16"
"2 * 9 = 18"

if else를 기본적으로 쓰되 if else가 너무 많아지고 직관적이지 못할때
switch case를 사용한다.

// switch case 문 기본 구조

var i = 1;
switch (i) {
  case 1 : 
    console.log("1번 케이스");
    break;
  case 2 :
    console.log("2번 케이스");
    break;
  case 3 :
    console.log("3번 케이스");
    break;
  case 4 :
    console.log("4번 케이스");
    break;
    default :
    console.log("디폴트 케이스");    
}

출력
"1번 케이스"

배열

// array라고 표현하기도 하고 한국어로 배열이라고 함
// [1, 2, 3, 4]
// 컴퓨터언어는 0부터 시작하기 때문에
// 1, 2, 3, 4가 있으면 순서대로
// index0, index1, index2...이런식으로 불린다.

console.clear();

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
console.log(a);
console.log(a[0]);
console.log(a[1]);
console.log(a[2]);
console.log(a[3]);
console.log(a[4]);
console.log(a[5]);
console.log(a[6]);
console.log(a[7]);
console.log(a[8]);
console.log(a[9]);

출력
// object Array
[1,2,3,4,5,6,7,8,9,10]
1
2
3
4
5
6
7
8
9
10

배열의 예시 그림

배열을 반복문과 응용

// 반복문을 사용해서 a인덱스에 접근해서 10까지 출력

console.clear();

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for (var i = 0; i <= 9; i++) {
  // (i로 초기화; i는 9이하로 범위설정; i증가)index 0부터 9까지 배열a에 접근시켜서 출력하도록
  console.log(a[i]); // 배열에 i 투입
}

출력
1
2
3
4
5
6
7
8
9
10

// 배열에 바나나가 있으면 바나나라고 출력되고 딸기가 있으면 딸기라고 출력되고

console.clear();

var a = ["사과", "바나나", "딸기"]


for (var i = 0; i <= 2; i++) {
  if (a[i] == "사과") {
    console.log("사과가 있습니다."); 
  } else if (a[i] == "바나나") {
    console.log("바나나가 있습니다.")
  } else if (a[i] == "딸기") {
    console.log("딸기가 있습니다.")
  }
}

// 배열은 반복문에 의해서 순회할 수 있다.

출력
"사과가 있습니다."
"바나나가 있습니다."
"딸기가 있습니다."

// 조커가 있으면 조커가 있다고 출력해주세요

console.clear();

var a = ["배트맨", "조커"]

for (var i = 0; i <= 1; i++) {
  if (a[i] == "배트맨") {
    console.log("배트맨이 있습니다.") 
  } else if (a[i] == "조커") {
    console.log("조커가 있습니다.")   
  }

출력
"배트맨이 있습니다."
"조커가 있습니다."

// for문에 조건을 넣고 반복시켜서
// if문으로 배열 내에 나이에 맞게 성년/미성년을 구별하여 전부 출력해라

console.clear();

var a = [17, 18, 19, 20, 21, 22, 23]

for (var i = 0; i <= 6; i++) {
  if (a[i] <= 19) {
    console.log("미성년 입니다.");
  } else if (a[i] >= 20) {
    console.log("성년 입니다.");
  } 
}

출력
"미성년 입니다."
"미성년 입니다."
"미성년 입니다."
"성년 입니다."
"성년 입니다."
"성년 입니다."
"성년 입니다."

// 미성년자가 몇 명인지 성년자가 몇 명인지 계산하여라

console.clear();

var a = [17, 18, 19, 20, 21, 22, 23]
var countx = 0;
var county = 0;

for (var i = 0; i <= 10; i++) {
  if (a[i] <= 19) {
    countx = countx + 1;
    
  } else if (a[i] >= 20) {
    county = county + 1;    
  }
}
console.log(countx);
console.log(county);

출력
3
4

profile
문제 해결을 위해 끊임없이 파고드는 걸 좋아합니다.

0개의 댓글