2022-06-10
i = i + 1 = 로 값을 대입시켜주지 않으면 구문 등 여러 오류가 날 수도 있으며,
대입 연산자를 써야 i에 값을 저장시켜줘서 반영이 된다
for (let i = 0 ; i < 10 ; i++)
for문의 조건은 i < 10 횟수 부분인데, while의 조건은 조금 다르다
while(true){
for()
}
무한루프에 break;를 일반적으로 쓰지만
while( i < 10){
}
처럼 조건을 쓸 수도 있다.
<script>
let i = 0
while(confirm("계속 진행을 원하시면 확인을 누르세요")) {
alert(`${i}번째 반복문입니다.`)
i = i + 1
}
</script>
<script>
let i = 0
const array = [1,2,3,4,5,6,7]
while(i < array.length) {
alert(`${i}번째 반복문입니다.`)
console.log(array[i])
i = i + 1
}
</script>
반복문 빠져나오기는 보통 while을 많이 쓰지만 예시에는 for문도 써봄
<script>
let i = 0
while(true) {
alert(`${i}번째 반복문입니다.`)
break
}
</script>
<script>
for(let j = 0 ; j < 10 ; j++) {
alert(`${j}번째 반복문`)
break
}
</script>
<script>
for(let j = 0 ; j < 10 ; j++) {
alert(`${j}번째 반복문`)
const tf = confirm("그만 두시겠습니까?")
if(tf){
break
}
j = j + 1 //이걸 쓰면 j++에 j=j+1까지 하니까 0 2 4 6 8 으로 늘어난다...
}
</script>
반대의 로직은 not의 의미를 가진 !
을 쓰면 된다
<script>
for(let j = 0 ; j < 10 ; j++) {
alert(`${j}번째 반복문`)
const tf = confirm("계속 하시겠습니까?")
if(!tf){
break
}
j = j + 1
}
</script>
점프를 하기 때문에 confirm 실행문 수행을 안한다
<script>
for(let j = 0 ; j < 10 ; j++) {
alert(`${j}번째 반복문`)
continue //아래 명령문들을 실행하지 않고 반복문 위로 점프하여 다음 반복문의 절차를 수행함
const tf = confirm("계속 하시겠습니까?")
if(!tf){
break
}
}
</script>
반복문을 쓸 때는 구조를 파악하는 것이 중요하다
*
**
***
****
*****
******
*******
********
*********
이것과 같은 구조를 콘솔창에서 출력하려면 어떻게 해야할까?
<script>
let result=""
for(let i = 1; i < 10; i++){
for(let j=0; j<i; j++){
result += "*"
}
result += "\n"
}
console.log(result)
</script>
console log 밑에 쓰는 이유는 리소스가 반복되면 속도가 느려질 수 있어서 여러번 돌려놓고 한꺼번에 출력하게 만드는 것.
도큐먼트에 글을 출력하고 싶다면, document.wirte를 쓰면 된다.
<script>
for(let i = 0; i <=10; i++) {
for(let j = 0; j <= i; j++) {
document.write('*');
}
document.write('<br>')
}
</script>
함수는 한 번 써놓은 식을 호출해서 쓸 수 있다는 장점이 있다.
<script>
익명함수, 프로시저 함수----------------------
const f = function() {
console.log("실행문1")
console.log("실행문2")
console.log("실행문3")
}
f()
// f(typeof(f()))
console.log(f)
선언적 함수 --------------------------------
function f(){
}
수학적 함수 --------------------------------
const fk = function(x) {
return x + 5
}
console.log(fk(5))
함수 비교하기-------------------------------
일반적 for문
let limit = 10
for(i=0; i<10; i++){
i=i+1
}console.log(i)
-------------------------------------잘 안씀
프로시저 함수-------------------------
let limit = 10
const f = function() {
let result = 0
for(let i = 1; i < limit; i++){
result = result+j
} console.log(f)
}
limit = 20
f()
limit = 100
f()
limit = 1000
f()
수학적 함수-------------------------
let result
const fk = function(x) {
for(let i=1;i<x;i++){
result=result + i
}
return result
}
console.log(fk(5))
console.log(fk(1000))
</script>
<script>
const 함수명 = function(){
실행문
실행문
}
함수명() //함수를 호출해서 쓸 수 있다는 것
</script>
<script>
const 함수명 = function(name){
let fullname = ""
fullname = name + "님 반갑습니다."
return fullname
실행문
}
console.log(함수명("홍길동"))
console.log(함수명("가나다"))
</script>
<script>
function 함수명(name) {
실행문
실행문
}
</script>
결과는 같지만 내부적으로 돌아가는 로직은 다르다.
아래처럼 쓸 경우 함수가 함수를 덮어씌우는 경우가 생긴다. 요즘에는 const로 선언하면 같은 함수를 재 선언할 때 에러가 나면서 중지되므로 const 추세로 바뀜!
함수에 대한 이해를 아직...... 제대로 못하겠음.
직접 코딩을 써보면서 익히는 수 밖에 없어보인다..
점점 더 어려워지는 느낌.........