연산자, 조건문, 반복문, 함수

조영래·2024년 7월 16일
0
post-custom-banner

연산자

기본형자료형 = 원시타입

const aaa = 10;
console.log(typeof aaa);

연습문제

let num2 = 42;
let name2 = "John";
let isTrue = true;
let person = { name: "Alice", age: 30 };
let fruits = ["apple", "banana", "orange"];
console.log(typeof num2);
console.log(typeof name2);
console.log(typeof isTrue);
console.log(typeof person);
console.log(typeof fruits);
let length = 16; //  숫자형
let lastName = "Brown"; // 문자형
let score = [10, 20]; // 배열
let x = {
  firstName: "Nick",
  lastName: "Doe",
}; // 객체

산술연산자 종류

곱셉 : *
덧셈 : +
뺄셈 : -
나눗셈 : /
나머지 : %

const bbb = a * b;
const add = a + b;
const minus = a - b;
const a = 10; 
const b = 5;

증감연산자

++
변수에 할당된 숫자 값을 1 증가할 때
++num 전치연산자 또는 전위연산자 전치 : ~하기전에
num++ 후치연산자 또는 후위연산자 후치 : ~한후에

let num = 10;
num++;
const increNum = num++;

감소 연산자

--
변수에 할당된 숫자 값을 1 감소할 때

let num3 = 10;
num3--;
--num3;
num3--;

연습문제

const y = 7;
console.log(y);
console.log(y++);
console.log(y);
console.log(y--);
console.log(++y);
console.log(--y);

대입 연산자

const abc = 10;
num += 10; // num = num + 10

연습문제

const xxx = 20;
xxx += 10;
console.log(xxx); // 30
xxx -= 5;
console.log(xxx); // 25
xxx %= 2;
console.log(xxx); // 12.5
xxx *= 3;
console.log(xxx); // 37.5

동등 연산자

const aaa = 10;
const bbb = 10;
const strNum = "10";
console.log(aaa == bbb);
console.log(aaa == strNum);
10 == "10"
실무에서는 일치, 불일치 사용

연습문제

const age1 = 25;
const age2 = 30;
console.log(age1 > age2); // false
console.log(age1 === age2); // false
console.log(age1 > age2 ? "Older" : "Younger or Same");

삼항연산자

0, undefined, null -> 자동으로 거짓으로 판별
0보다큰수, 문자열, 배열, 함수 값 -> 참 판별

let myMoney = 3000;
let price = 5000;
const result = myMoney > price ? "돈이 부족합니다." : "물건을 구매하겠습니까?";

연습문제

  1. 숫자비교
  2. 변수 num에 임의의 숫자를 할당하세요.
  3. num이 0보다 큰지, 0인지, 0보다 작은지 삼항 연산자를 사용하여 각각 "Positive", "Zero", "Negative"를 출력하세요.
const num = 7;
const results = num > 0 ? "Positive" : num === 0 ? "Zero" : "Negative ";
const results = num > 0 ? "Positive" : (num === 0 ? "Zero" : "Negative) "; () 넣어서 가독성 좋게

최댓값 찾기

세 변수 a, b, c에 임의의 숫자를 할당하세요.
삼항 연산자를 사용하여 a, b, c 중 가장 큰 숫자를 찾고, 그 결과를 출력하세요.

const a = 1;
const b = 2;
const c = 3;
const qqq = a > b ? a > c ?a : c) : b > c ? b : c;

연산자

연습문제

const a = true;
const b = false;
console.log(a && b); // false
console.log(a || b); // true
console.log(!a); // false
const x = 10;
const y = 20;
const z = 30;
// 크고(연결) => &&   크거나, 이거거나 => ||
// or는 둘중하나만 true여도 true 반납
console.log(x > 10 && y < 5); // false
console.log(x > 10 || z > 3); // true
console.log(y !== 0);
const isLoggedIn = true;
const isAdmin = false;
console.log(isLoddedIn ? "Welcome" : "Please log in");
console.log(isAdmin ? "Admin access granted" : "Admin access denied");
console.log(
  isLoggedIn && isAdmin ? "Full access granted" : "Restricted access"
);

서술형 문제

변수 value1value2에 각각 임의의 값을 할당하세요. (예: 숫자, 문자열, null, undefined)
두 변수 중 하나라도 값이 존재하는지 확인하는 조건을 작성하고, 결과를 출력하세요.
두 변수 모두 값이 존재하지 않는지 확인하는 조건을 작성하고, 결과를 출력하세요.

const value1 = undefined;
const value2 = null;
 0, undefined, null, "", NAN 이 값이 아니면 다 참으로 나타남
 문제에서 원하는 답은 0, undefined, null, "", NAN -> true false 변환이 되는 걸 원함
 true, false 반대로 출력되는 걸 아니다.
 !! 부정 2번이면 javscript 최종적으로 true, false 로 도출할려한다
console.log(!!value1 || !!value2); // 1개라도 값이 존재하면 true, 아니면 false
console.log(!value1 && !value2); // 두 변수 모두 값이 없으면 true, 아니면 false

변수 num에 임의의 숫자를 할당하세요.
num이 0 이상 100 이하인지 확인하는 조건을 작성하고, 결과를 출력하세요.
num이 0 미만이거나 100 초과인지 확인하는 조건을 작성하고, 결과를 출력하세요.

const num = 50;
console.log(num >= 0 && num <= 100); // true
console.log(num < 0 || num > 100); // false

조건문

switch 문

const area = "경기도";
const area = "제주도";
let baesongbi = 0;
switch (area) {
  case "서울":
    baesongbi = 3000;
    break;
  case "인천":
    baesongbi = 3000;
    break;
  case "남양주":
    baesongbi = 3000;
    break;
  case "경기도":
    baesongbi = 3500;
    break;
  default:
    baesongbi = 100000;
    break;
}
console.log(baesongbi); //3500
console.log(baesongbi); // 제주도일때 10000

조건문

if (area === "서울") baesongbi = 3000;
else if (area === "인천") baesongbi = 3000;
else if (area === "남양주") baesongbi = 3000;
else if (area === "경기도") baesongbi = 3000;
else baesongbi = 10000;
if (
  area === "서울" ||
  area === "인천" ||
  area === "남양주" ||
  area === "경기도"
)
  baesongbi = 3000;
else baesongbi = 100000;

연습문제

학점 계산기 
const score = 88;
if (score >= 90) console.log("A");
else if (score >= 80) console.log("B");
else if (score >= 70) console.log("C");
else if (score >= 60) console.log("D");
else console.log("F");
짝수와 홀수 판별
const num = 8;
if (num % 2 === 0) {
  ("Even");
} else {
  ("Odd");
}

삼항연산자

const isLoggedIn = true;
const isAdmin = false;
const checkId = isLoggedIn ? "true" : "false";
숫자 크기 비교
const a = 10;
const b = 20;
if (a > b) console.log("a is greater");
else if (a < b) console.log("b is greater");
else console.log("equal");
월별 계절 판별
const month = 5;
if (month === 12 || month === 1 || month === 2) console.log("Winter");
else if (month === 3 || month === 4 || month === 5) console.log("Spring");
else if (month === 6 || month === 7 || month === 8) console.log("Winter");
else console.log("Fall");

반복문

무한루프(inifinnte loop, 무한 반복문)
let num = 0;
while (num < 10) {
  console.log(num); // -> 무한 반복문을 만드는 실수
  num++;
}
do {
  console.log(num);
  num++;
} while (num < 10);
for (let i = 0; i < 10; i++) {
  console.log(i);
}
for inlet arr = ["banana", "apple", "orange"];
let obj = { name: "철수", age: 20 };
for (let index in arr) {
  console.log(index);
}
for (let key in obj) {
  console.log(obj[key]);
}

연습문제

1부터 9까지 출력하기

let num = 1;
while (num < 10) {
  console.log(num);
  num++;
}
do {
  console.log(num);
  num++;
} while (num < 10);
배열에 음수값이 섞여있습니다. 
음수는 제외하고 양수들만 골라내어 합을 구하세요
let numArr = [10, -10, 20, -30, 40];
let sum = 0;
for (let value of numArr) {
  if (value > 0) {
    sum += value;
  }
}
배열 길이를 구해서 반복문 사용
for (let i = 0; i < numArr.length; i++) {
  if (numArr[i] > 0) {
    sum += numArr[i];
  }
}
const str = "Hello World";
console.log(str.length);
console.log(numArr.length); // 5 배열의 갯수를 알수있다.
홀짝 구분하기
0부터 15까지 출력하면서 각각의 수가 짝수인지 홀수인지
구분하여 출력하도록 코드를 작성해주세요.
출력 예시 ) 
0 짝수 
1 홀수
2 짝수
3 홀수
4 짝수
... 중략 .. 
15 홀수
for (let i = 0; i < 15; i++) {
  console.log(i, i % 2 === 0 ? "짝수" : "홀수");
}
암스트롱 수 구하기
100부터 999까지 암스트롱 수를 구하세요
&암스트롱 수란?
암스트롱의 수는 세 자리의 정수 중에서 각 자리의 수를 세 제곱한 수의 합과 자신이 같은 수를 말합니다. 
예를 들어 153 = 1 + 125 + 27 입니다. 
이와 같은 수를 암스트롱의 수라고 말합니다.
//153
// 100 -> 1 0 0
// 일의 자리 : 456 % 10 = 6
// 십의 자리 : (456 - 6) / 10 % 10 = 5
// 백의 자리 : 456 - 6 - (5 % 10) = 400 / 100 = 4;
for (let i = 100; i < 999; i++) {
  const num1 = i % 10; // 일의 자리
  const num2 = ((i - num1) / 10) % 10; // 십의 자리
  const num3 = (i - num1 - num2 * 10) / 100; // 백의 자리
  if (i === num1 * num2 * num1 + num2 * num2 * num2 + num3 * num3 * num3)
    console.log(i);
}
// 다중 for 문, 다중 반복문
for (i = 1; i < 10; i++) {
  // 백의자리
  for (j = 0; j < 10; j++) {
    // 십의자리
    for (k = 0; k < 10; k++) {
      // 일의자리
      let result = i * 100 + j * 10 + k;
      let sum = i ** 3 + j ** 3 + k ** 3;
      if (result === sum) console.log(result);
    }
  }
}
// 거듭제곱연산자
// **
// 2 ** 3 = 8
// 3 ** 2 = 9

함수

function gugudan3() {
}
gugudan3();

함수 표현식
익명 함수(unnamed function )

const gugudan4 = function () {
};
gugudan4();

함수의 매개변수

function add(a, b) {
  console.log(a + b);
}
add(10, 20);

화살표 함수

const func = () => {};
배열형태로
function add(...args) {
  console.log(args);
  // 유사 배열 객체 es6나오기전까지 많이 사용한 방식
  console.log(arguments);
  let sum = 0;
  for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  console.log(sum);
}
add(10, 20);
add(10, 20, 30);
매개변수
function add(a, b, ...args) {
  console.log(a, b, args);
}
add(10, 20, 30, 40, 50);
// return은 함수 내부 안에서만 사용
function add(a, b) {
  const sum = a + b;
  return sum;
}
function printNumber(number) {
  console.log(`${number}가 출력되었습니다.`);
}
const sum = add(10, 20); // 10, 20이 sum안으로
printNumber(sum);

연습문제

매개변수를 전달받아서 매개변수의 총 합을 반환하는 덧셈 함수를 만들어주세요.
매개변수의 갯수 제한은 없습니다.
1const add = (...args) => {
  let sum = 0;
  for (let i = 0; i < args.length; i++) {
    sum += args[i];
  }
  return sum;
};
console.log(add(10, 20, 30, 40));
사칙연산을 수행하는 로직을 담은 함수를 구현해주세요.
구현 방법은 자율입니다.
function calcuate(a, b, operator) {
  switch (operator) {
    case "+":
      return a + b;
    case "-":
      return a - b;
    case "*":
      return a * b;
    case "/":
      return a / b;
  }
}
console.log(calcuate(10, 2, "/"));
짝수와 홀수 판별하기
숫자를 매개변수로 받아서 짝수면 true, 홀수면 false를 반환하는 함수 isEven을 작성하세요.
함수를 사용하여 7이 짝수인지 홀수인지 판별하고 결과를 출력하세요.
const isEven = (num) => (num % 2 === 0 ? true : false);
console.log(isEven(7));
팩토리얼 계산하기
양의 정수를 매개변수로 받아서 그 수의 팩토리얼을 반환하는 함수 `factorial`을 작성하세요.
함수를 사용하여 5의 팩토리얼을 계산하고 결과를 출력하세요.
function factorial(n) {
  let sum = 1;
  for (i = n; i > 0; i--) {
    sum *= i;
  }
  return sum;
}
console.log(factorial(5));
재귀함수
case 2 재귀함수 한수안에서 자기 자신을 다시 호출하는 함수
const factorial = (n) => {
  if (n === 0 || n === 1) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
};
console.log(factorial(5));
profile
난될놈이야
post-custom-banner

0개의 댓글