[혼공js] 3. 조건문

승연·2024년 1월 9일
0
post-thumbnail

3.1. if 조건문

if 조건문은 조건 (불 자료형) 에 따라서 코드를 실행하거나 실행하지 않을 때 사용하는 구문

3.1.1. if 조건문

if(불 값이 나오는 표현식) {
	불 값이 참일 때 실행할 문장
}
  • if 조건문 사용하기
    if (273 < 100){
       alert('273< 100 => true')
    }
    
    alert('종료')
  • 오전과 오후 구분하기
    const date = new Date() //현재 날짜와 시간을 갖는 객체 생성 
    const hour = date.getHours()  //현재 시간을 0~23 사이의 값으로 출력하는 메소드 
    
    if (hour < 12) {
       alert('오전입니다')
    }
    
    if (hour >= 12) {
       alert('오후입니다')
    }

3.1.2. if else 조건문

if (불 값이 나오는 표현식){
	불 값이 참일 때 실행할 문장
} else {
	불 값이 거짓일 때 실행할 문장
}
  • if else 조건문을 사용해 현재 시간 구하기
    const date = new Date() //현재 날짜와 시간을 갖는 객체 생성 
    const hour = date.getHours()  //현재 시간을 0~23 사이의 값으로 출력하는 메소드 
    
    if (hour < 12) {
       alert('오전입니다')
    }
    
    else {
       alert('오후입니다')
    }

3.1.3. 중첩 조건문

조건문 안에 조건문을 중첩해 사용하는 것

if (불 값이 나오는 표현식 1){
	if (불 값이 나오는 표현식 2) {
		표현식 2가 참일 때 실행할 문장
	} else {
		표현식 2가 거짓일 때 실행할 문장
	}
} else {
   if (불 값이 나오는 표현식 3) {
      표현식 3이 참일 때 실행할 문장
   }  else{
      표현식 3이 거짓일 때 실행할 문장 
   }
}
  • 중첩 조건문으로 시간 파악하기
    const date = new Date();
    const hour = date.getHours()
    
    //중첩 조건문
    if (hour < 11) {
       alert('아침 먹을 시간임')
    }
    
    else {
       if (hour < 15) {
          alert('점심 먹을 시간임')
       }
    
       else {
          alert('저녁 먹을 시간임')
       }
    }

3.1.4. if, else if 조건문

if (불 표현식){
   문장
}
else if (불 표현식){
   문장
}
else {
   문장
}
  • if, else if 조건문으로 시간 파악하기
    //변수 선언
    const date = new Date()
    const hour = date.getHours()
    
    //if else if 조건문
    if (hour < 11){
       //표현식 hour < 11이 참일 때 실행
       alert('아침 먹을 시간')
    }
    
    else if (hour < 15){
       //표현식 hour < 11 이 거짓이고 표현식 hour < 15가 참일 때 실행
       alert('점심 먹을 시간')
    }
    
    else {
       alert('저녁 먹을 시간')
    }

3.1.5. 확인 문제

  • #1 3번 10 > 4이므로
  • #2
    //상수
    const a = Number(prompt('첫 번째 숫자', ''))
    const b = Number(prompt('두 번째 숫자', ''))
    
    //if, else if, if
    if (a > b){
       alert('첫 번째로 입력한 숫자가 더 큽니다.')
    }
    else if (a == b){
       alert('두 숫자가 같습니다.')
    }
    
    else {
       alert('두 번째로 입력한 숫자가 더 큽니다.')
    }
  • #3 && ( and )
  • #4 사용자에게 숫자를 입력받아 양수, 0, 음수 구분하는 프로그램
    const a = Number(prompt('숫자를 입력해주세요.', ''))
    
    if (a > 0) {
       alert('양수')
    } 
    else if (a == 0){
       alert('0')
    }
    else {
       alert('음수')
    }
  • #5 사용자에게 숫자를 입력받아 짝수, 홀수 구분하는 프로그램
    const a = Number(prompt('숫자를 입력해주세요.', ''))
    
    if (a % 2 == 0) {
       alert('짝수')
    }
    
    else {
       alert('홀수')
    }
  • #6 현재가 몇 월인지 확인, 계절을 구분하는 프로그램
    const a = Number(prompt('월을 입력해주세요.', ''))
    
    if ( 2 < a && a < 6) {
       alert('봄')
    }
    else if ( 5 < a && a < 9 ){
       alert('여름')
    }
    else if ( 8 < a && a < 12 ){
       alert('가을')
    }
    else {
       alert('겨울')
    }

3.2. switch 조건문과 짧은 조건문

3.2.1. switch 조건문

switch (key) {
   case value:
      
      break;

   default:
      break;
}
  • switch 조건문 사용하기
    //변수 선언
    const input = Number(prompt('숫자를 입력하세요', '숫자'))
    
    //조건문
    switch (input % 2) {
       case 0:
          alert('짝수')
          break;
       case 1:
          alert('홀수')
          break;
    
       default:
          alert('숫자가 아님')
          break;
    }

break: switch문이나 반복문을 빠져나가기 위해 사용하는 키워드

switch문 → if문

//변수 선언
const date = new Date()
const hour = date.getHours()

//조건문
switch (true) {
   case hour < 11:
      alert('아침 먹을 시간')
      break;

   case hour < 15:
      alert('점심 먹을 시간')
      break;

   default:
      alert('저녁 먹을 시간')
      break;
}

3.2.2. 조건부 연산자 (삼항 연산자)

불 표현식 ? 참일 때의 결과 : 거짓일 때의 결과

  • 조건부 연산자 활용하기
    // 변수 선언
    const input = prompt('숫자를 입력하세요')
    const number = Number(input)
    
    // 조건문
    const result = (number >= 0) ? '0 이상의 숫자' : '0 미만의 숫자'
    alert(result)

3.2.3. 짧은 조건문

논리합 연산자를 사용한 짧은 조건문

불 표현식 || 불 표현식이 거짓일 때 실행할 문장

true || console.log('실행될까요?')  //true

false || console.log('실행될까요?') //undefined

논리곱 연산자를 사용한 짧은 조건문

결과가 거짓인 불 표현식 && 불 표현식이 참일 때 실행할 문장

3.2.4. 누적 예제

짝수와 홀수 구분하기

  • if else문으로 짝수와 홀수 구분하기(1)
    //끝자리로 홀짝 구분
    const input = prompt('정수를 입력: ')
    const last = input[input.length -1]
    
    //끝자리 비교
    if (last === '0' || last === '2' || last === '4' || last === '6' || last === '8') {
       alert('짝수임')
    }
    else alert('홀수임')
  • if else문으로 짝수와 홀수 구분하기(2)
    //2로 나눈 나머지로 홀짝 구분
    const input = prompt('정수를 입력: ')
    const num = Number(input)
    
    //나머지 비교
    if (num % 2 == 0){
       alert('짝수')
    }
    else {alert('홀수')}

학점을 기반으로 별명 붙여주기

  • 중첩 조건문 사용하기(1)
    //학점 입력 받기
    const score = Number(prompt('학점을 입력해주세요 : '))
    
    if (score === 4.5){
       alert('신')
    }
    else if (4.2 <= score && score < 4.5){
       alert('교수님의 사랑')
    }
    else if ( 3.5 <= score && score < 4.2 ){
       alert('현 체제의 수호자')
    }
    else if ( 2.8 <= score && score < 3.5 ){
       alert('일반인')
    }
    else if ( 2.3 <= score && score < 2.8 ){
       alert('일탈을 꿈꾸는 소시민')
    }
    else if ( 1.75 <= score && score < 2.3 ){
       alert('오락문화의 선구자')
    }
    else if ( 1.0 <= score && score < 1.75 ){
       alert('불가촉천민')
    }
    else if ( 0.5 <= score && score < 1.0 ){
       alert('자벌레')
    }
    else if ( 0 < score && score < 0.5 ){
       alert('플랑크톤')
    }
    else {
       alert('시대를 앞서가는 혁명의 씨앗')
    }
  • 중첩 조건문 사용하기(2)
    //학점 입력 받기
    const score = Number(prompt('학점을 입력해주세요 : '))
    
    if (score === 4.5){
       alert('신')
    }
    else if (4.2 <= score){
       alert('교수님의 사랑')
    }
    else if ( 3.5 <= score){
       alert('현 체제의 수호자')
    }
    else if ( 2.8 <= score){
       alert('일반인')
    }
    else if ( 2.3 <= score){
       alert('일탈을 꿈꾸는 소시민')
    }
    else if ( 1.75 <= score){
       alert('오락문화의 선구자')
    }
    else if ( 1.0 <= score){
       alert('불가촉천민')
    }
    else if ( 0.5 <= score ){
       alert('자벌레')
    }
    else if ( 0 < score){
       alert('플랑크톤')
    }
    else {
       alert('시대를 앞서가는 혁명의 씨앗')
    }

태어난 연도를 입력받아 띠 출력하기

  • if else if 조건문 사용해보기
    //태어난 해 입력받기
    const year = Number(prompt('태어난 해를 입력하세여'))
    const r = year % 12
    let res
    
    //12로 나눈 나머지로 띠동물 결정
    if (r === 0){res = '원숭이'}
    else if (r === 1){ res = '닭'}
    else if (r === 2){ res = '개'}
    else if (r === 3){ res = '돼지'}
    else if (r === 4){ res = '쥐'}
    else if (r === 5){ res = '소'}
    else if (r === 6){ res = '호랑이'}
    else if (r === 7){ res = '토끼'}
    else if (r === 8){ res = '용'}
    else if (r === 9){ res = '뱀'}
    else if (r === 10){ res = '말'}
    else if (r === 11){ res = '양'}
    
    alert(`${year}년에 태어났다면 ${res}띠입니다`)
  • split로 문자열 잘라 사용하기
    const year = Number(prompt('태어난 해를 입력하세요'))
    const tti = '원숭이,닭,개,돼지,쥐,소,호랑이,토끼,용,뱀,말,양'.split(',')
    alert(`${year}년에 태어났다면 ${tti[year % 12]}띠입니다.`)

3.2.5. 확인 문제

    1. 100>200은 거짓이므로 버튼을 클릭해주세요 출력

    1. 태어난 연도를 입력받아 띠 출력하기에서 if 조건문을 switch 조건문으로 변경

      //태어난 해 입력받기
      const year = Number(prompt('태어난 해를 입력하세여'));
      const r = year % 12;
      let animal;
      
      //12로 나눈 나머지로 띠동물 결정
      switch (r) {
         case 0:
            animal ='원숭이'
            break;
         case 1:
            animal ='닭'
            break;
         case 2:
            animal ='개'
            break;
         case 3:
            animal ='돼지'
            break;
         case 4:
            animal='쥐'
            break;
         case 5:
            animal ='소'
            break;
         case 6:
            animal ='호랑이'
            break;
         case 7:
            animal ='토끼'
            break;
         case 8:
            animal ='용'
            break;
         case 9:
            animal ='뱀'
            break;
         case 10:
            animal ='말'
            break;
         case 11:
            animal ='양'
            break;
      }
      
      alert(`${year}년에 태어난 당신은 ${animal}띠입니다`)
    1. 자축인묘진사오미 + 갑을병정무기경신임계

      //태어난 해 입력받기
      const year = Number(prompt('태어난 해를 입력하세여'))
      const r = year % 12
      const e = year % 10
      let res
      let gan
      
      //12로 나눈 나머지로 띠동물 결정
      if (r === 0){res = '신'}
      else if (r === 1){ res = '유'}
      else if (r === 2){ res = '술'}
      else if (r === 3){ res = '해'}
      else if (r === 4){ res = '자'}
      else if (r === 5){ res = '축'}
      else if (r === 6){ res = '인'}
      else if (r === 7){ res = '묘'}
      else if (r === 8){ res = '진'}
      else if (r === 9){ res = '사'}
      else if (r === 10){ res = '오'}
      else if (r === 11){ res = '미'}
      
      //연도를 10으로 나누어 간 결정 - switch 사용 
      switch (e) {
         case 0:
            gan = '경'
            break;
         case 1:
            gan = '신'
            break;
         case 2:
            gan = '임'
            break;
         case 3:
            gan = '계'
            break;
         case 4:
            gan = '갑'
            break;
         case 5:
            gan = '을'
            break;
         case 6:
            gan = '병'
            break;
         case 7:
            gan = '정'
            break;
         case 8:
            gan = '무'
            break;
         default:
            gan = '기'
            break;
      }
      
      alert(`${year}년은 ${gan}${res}년입니다`)
    1. else
    1. 4
      true ? alert('a') : alert('b')
      false ? alert('b') : alert('a')
      true || alert('a')
      true && alert('a')
profile
앙녕항셍용

0개의 댓글