IT/JavaScript

자바스크립트 for, while 루프

김숭늉이 2023. 9. 20. 10:52
728x90

 

 

자바스크립트에서 반복문을 쓸때 사용하는 for와 while 루프!

 


// for loop keeps running while condition is true
for (let rep = 1; rep <= 10; rep++) {
console.log(`lifting weights repetition ${rep}`);
}



for (let i = 0; jonas.length <; i++) {
console.log(Jonas[i], typeof jonas[i])
}

const years = [1991, 2007, 1969, 2020];
const ages = [];

for (let i = 0; i < years.length; i++) {
2037 - years[i]
ages.push(2037-years[i]);
}

// continue and break
console.log('--- ONLY STRINGS ---')
for (let i = 0; i < jonas.length; i++) {
if (typeof jonas[i] !== 'string') continue;

console.log(jonas[i], typeof jonas[i]);
}

console.log('--- BREAK WITH NUMBER ---')
for (let i = 0; i < jonas.length; i++) {
if (typeof jonas[i] === 'number') break;

console.log(jonas[i], typeof jonas[i]);
}


for (let i = jonas.length - 1; i>= 0; i--) {
console.log(i, jonas[i]);
}

// 루프안의 루프


for (let exercise= 1; exercise < 4; exercise++) {
console.log(`starting exercise ${exercise}`)

for (let rep=1; rep<6; rep++){
console.log(`lifting weight repetition ${rep}`)
}

};
 

 

 


let rep = 1;
while (rep <=10) {
console.log(`lifting weight repetition ${rep}`)
rep++
}

 

 


let dice = Math.trunc(Math.random() * 6) + 1;

while (dice !== 6) {
console.log(`You rolled a ${dice}`);
dice = Math.trunc(Math.random() * 6) + 1;
if (dice === 6) {
console.log("Loop is about to end...");
}
}

 

 

const calcTip = function (bill) {
return bill >= 50 && bill <= 300 ? bill * 0.15 : bill * 0.2;
};
const bills = [22, 295, 176, 440, 37, 105, 10, 1100, 86, 52];
const tips = [];
const totals = [];

for (let i = 0; i < bills.length; i++) {
const tip = calcTip(bills[i]);
tips.push(tip);
totals.push(tip + bills[i]);
}
console.log(bills, tips, totals);

const calcAverage = function (arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
// sum = sum + arr[i];
sum += arr[i];
}
return sum / arr.length;
};
console.log(calcAverage([2, 3, 7]));
console.log(calcAverage(totals));
console.log(calcAverage(tips));

 

 

 

728x90
반응형