TIL 2023.03.07(온보딩 2일차)
if 조건문
if( 불 값이 나오는 표현식){ 불 값이 참일 때 실행할 문장 } |
const a = Number(prompt('월을 입력해주세요.',''))
if(1 <= a && 3 >= a){
alert('봄입니다')
}
if(4 <= a && 6 >= a){
alert('여름입니다')
}
if(7 <= a && 9 >= a){
alert('가을입니다')
}
if(10 <= a && 12 >= a){
alert('겨울입니다')
}
위 코드는 월을 입력하여 몇월인지 alert 창으로 알려주는 코드이다.
1. 상수 a에 사용자가 입력한 값을 Number() 함수를 이용해 숫자 자료형으로 할당한다.
2. if 조건문과 연산자를 활용해 조건을 만들어주고 참일 경우 return 되는 alert 창을 만들어준다.
switch 조건문
switch(자료){ case 조건 A : break case 조건 B : break default : break |
위는 switch 조건문의 기본 형태이며 default 키워드는 생략할 수 있다.
break 키워드는 switch 조건문이나 반복문을 빠져나가기 위해 사용하는 키워드이다.
const input = Number(prompt('숫자를 입력하세요',''))
switch(input % 2){
case 0:
alert('짝수입니다')
break
case 1:
alert('홀수입니다')
break
default:
alert('숫자가 아닙니다')
break
}
prompt를 통해 사용자에게 숫자를 입력하세요 라는 창을 띄우게 되고 입력을 받게 되면 Number( ) 을 통해 입력값을 숫자 자료형으로 변환시켜서 input에 할당한다.
그 후 input을 2로 나누게 되면 나머지가 0 이거나 1 일 수밖에 없기 때문에 case에 따라 alert를 리턴하게 된다.
조건부 연산자
불 표현식 ? 참일 때의 결과 : 거짓일 때의 결과 |
const input = prompt('숫자를 입력해주세요')
const number = Number(input)
const result = (number > 0 ) ? '0 이상의 숫자입니다' : '0 보다 작은 숫자입니다'
alert(result)
(number > 0) 이 참이면 ' 0 이상의 숫자입니다' 가 출력되고 거짓이면 ' 0 보다 작은 숫자입니다 ' 가 출력된다.
논리합 연산자를 사용한 짧은 조건문
true || 000 |
위의 표현식은 뒤에 어떠한 값이 들어가도 항상 참이다.
자바스크립트는 이와 같이 참이 확실할 때는 추가 연산을 진행하지 않는다. 즉, 논리합 연산자의 좌변이 참이면 우변을 실행하지 않는다.
우변은 좌변이 거짓일 때 출력되는 것이라고 봐도 된다.
논리곱 연산자를 사용한 짧은 조건문
false %% 000 |
논리곱 연산자는 양변이 모두 참일 때만 참이기 때문에 위의 표현식은 항상 거짓이다.
이 말은 논리곱 연산자는 좌변이 거짓이면 우변을 실행하지 않는다고 볼 수 있다.
const 입력 = prompt('정수를 입력하세요','')
const 끝자리 = 입력[입력.length - 1]
if(끝자리 === '0'||
끝자리 === '2' ||
끝자리 === '4' ||
끝자리 === '6' ||
끝자리 === '8'){
alert(`${입력}은 짝수입니다`)
}else{
alert(`${입력}은 홀수입니다`)
}
위 코드는 정수의 끝자리를 구하여 0, 2, 4, 6, 8과 비교해서 짝수, 홀수를 판별해내는 코드이다.
let a = '12345'.length
console.log(a)
let a = '12345'
let b = a[4]
console.log(b)
주의 깊게 봐야할 점은 const 끝자리 = 입력[입력.length - 1] 인데 자바 스크립트 인덱스는 0부터 카운트된다. 따라서 끝자리를 구하기 위해서는 length - 1 을 해야한다.
const 입력 = prompt('학점을 입력하세요')
const score = Number(입력)
if(score === 4.5){
alert('신')
}
else if(4.2 <= score){
alert('교수님의 사랑')
}
else if(3.5 <= score){
alert('현 체제의 수호자')
}
else if(2.8 <= score){
alert('일반인')
}
위 코드는 학점을 기반으로 별명을 붙여주기 위한 코드이다.
if 조건문은 위에서 아래로 흐르고 else 구문은 이전의 조건이 맞지 않을 때 넘어오는 부분이다. 따라서 앞에서 이미 제외된 조건을
한번 더 써서 검사할 필요 없이 위와 같이 구성하면 된다.
const 입력 = prompt('태어난 연도를 입력해주세요')
const year = Number(입력)
const 연도 = year % 12
if(연도 === 0){
alert('원숭이')
}
else if(연도 === 1){
alert('닭')
}
else if(연도 === 2){
alert('개')
}
else if(연도 === 3){
alert('돼지')
}
else if(연도 === 4){
alert('쥐')
}
else if(연도 === 5){
alert('소')
}
else if(연도 === 6){
alert('호랑이')
}
else if(연도 === 7){
alert('토끼')
}
else if(연도 === 8){
alert('용')
}
else if(연도 === 9){
alert('뱀')
}
else if(연도 === 10){
alert('말')
}
else if(연도 === 11){
alert('양')
}
태어난 연도를 12로 나눈 나머지가 0,1,2,3,4,5,6,7,8,9,10,11 일 때의 띠 동물을 판별해내는 코드이다.
const 입력 = prompt('태어난 연도를 입력하세요')
const year = Number(입력)
const tti = '원숭이, 닭, 개, 돼지, 쥐, 소, 호랑이, 토끼, 용, 뱀, 말, 양'.split(',')
alert(`${year}년생은 ${tti[year % 12]}띠 입니다.`)
위 코드에서 .split(' , ') 을 사용하면 '원숭이, 닭, 개, 돼지, 쥐, 소' 가 '원숭이', '닭', '개', 돼지', '쥐', '소' 라는 배열로 만들어지게 된다.
tti[ year 을 12로 나눈 나머지 값 ] 을 사용하면 자동으로 문자열을 불러오게 된다.
const result = (100 > 200) ? prompt('값을 입력해주세요') : confirm('버튼을 클릭해주세요')
alert(result)
100 > 200 은 false 이므로 confirm 함수 부분이 실행되고, 버튼을 클릭해주세요 라는 alert이 뜬 후 확인을 누르면 true, 취소를 누르면 false가 출력된다.
const rawInput = prompt('태어난 해를 입력해주세요','')
const year = Number(rawInput)
const e = year % 12
switch(e){
case 0: result='원숭이'; break;
case 1: result='닭'; break;
case 2: result='개'; break;
case 3: result='돼지'; break;
case 4: result='쥐'; break;
case 5: result='소'; break;
case 6: result='호랑이'; break;
case 7: result='토끼'; break;
case 8: result='용'; break;
case 9: result='뱀'; break;
case 10: result='말'; break;
case 11: result='양'; break;
}
alert(`${year}년은 ${result} 띠 입니다.`)
위 코드는 switch 조건문을 사용했다. rowInput에 입력 값 할당한 후 year에 입력 값을 숫자로 변환한 값을 할당한다.
e 에 year을 12로 나눈 나머지 값을 할당한 후 switch 함수를 위와 같이 활용한다.
주의해야 할 점은 깔끔하게 하려고 한 줄에 입력하려고 했기 때문에 꼭 세미콜론을 마지막에 찍어서 문장을 끝내줘야 한다.
const rawInput = prompt('태어난 해를 입력해주세요','')
const year = Number(rawInput)
let e = year % 10
if(e === 0){간 = '경'}
else if(e === 1){간 = '신'}
else if(e === 2){간 = '임'}
else if(e === 3){간 = '계'}
else if(e === 4){간 = '갑'}
else if(e === 5){간 = '을'}
else if(e === 6){간 = '병'}
else if(e === 7){간 = '정'}
else if(e === 8){간 = '무'}
else if(e === 9){간 = '기'}
let f = year % 12
if(f === 0){띠 = '신'}
else if(f === 1){띠 = '유'}
else if(f === 2){띠 = '술'}
else if(f === 3){띠 = '해'}
else if(f === 4){띠 = '자'}
else if(f === 5){띠 = '축'}
else if(f === 6){띠 = '인'}
else if(f === 7){띠 = '묘'}
else if(f === 8){띠 = '진'}
else if(f === 9){띠 = '사'}
else if(f === 10){띠 = '오'}
else if(f === 11){띠 = '미'}
alert(`${year}년은 ${간}${띠} 년입니다.`)
앞서봤던 코드와 비슷한 형태이고 if 조건문을 활용했다.