While loop
Syntax
while (condition) {
actions
}
Actions will be executed again and again until the condition returns false.
Accumulation of values in a loop
var sum = 0;
var i = 0;
while (i <= 5) {
sum += 1;
i++;
console.log(i);
}
The program will log:
LOG: 1 (number)
LOG: 2 (number)
LOG: 3 (number)
LOG: 4 (number)
LOG: 5 (number)
LOG: 6 (number) // Loop body code will not be executed, the condition will return false
Calculating percentage of a number
The easiest way to find a percentage of the number is to divide the number by 100 and multiply by the percentage.
// Let’s calculate 2 percent of 100
1000 / 100 * 2 = 20;
// Let’s calculate 7 percent of 1200
1200 / 100 * 7 = 84;
Continue
<!DOCTYPE html><html lang="en" class="no-js"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script>var b=document.documentElement.classList;b.remove('no-js');if(!window.Promise||!window.sessionStorage||!!sessionStorage.getItem('muller.v2')){b.add('muller')}</script><link rel="dns-prefetch" href="https://assets.htmlacademy.org"><script async src="https://www.googletagmanager.com/gtag/js?id=G-MXPCRXM48C"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-MXPCRXM48C');
</script><script type="text/javascript">
(function(e,t){var n=e.amplitude||{_q:[],_iq:{}};var r=t.createElement("script")
;r.type="text/javascript"
;r.integrity="sha384-d/yhnowERvm+7eCU79T/bYjOiMmq4F11ElWYLmt0ktvYEVgqLDazh4+gW9CKMpYW"
;r.crossOrigin="anonymous";r.async=true
;r.src="https://cdn.amplitude.com/libs/amplitude-5.2.2-min.gz.js"
;r.onload=function(){if(!e.amplitude.runQueuedFunctions){
console.log("[Amplitude] Error: could not load SDK")}}
;var i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)
;function s(e,t){e.prototype[t]=function(){
this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));return this}}
var o=function(){this._q=[];return this}
;var a=["add","append","clearAll","prepend","set","setOnce","unset"]
;for(var u=0;u<a.length;u++){s(o,a[u])}n.Identify=o;var c=function(){this._q=[]
;return this}
;var l=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"]
;for(var p=0;p<l.length;p++){s(c,l[p])}n.Revenue=c
;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"]
;function v(e){function t(t){e[t]=function(){
e._q.push([t].concat(Array.prototype.slice.call(arguments,0)))}}
for(var n=0;n<d.length;n++){t(d[n])}}v(n);n.getInstance=function(e){
e=(!e||e.length===0?"$default_instance":e).toLowerCase()
;if(!n._iq.hasOwnProperty(e)){n._iq[e]={_q:[]};v(n._iq[e])}return n._iq[e]}
;e.amplitude=n})(window,document);
amplitude.getInstance().init("df11525b6880a3c5e2af14f9b6238408", null,{
includeUtm: true,
includeGclid: true,
includeReferrer: true,
deviceIdFromUrlParam: true
}, function (instance) {
window.amplitudeLoaded = true;
});
</script><link rel="stylesheet" href="https://assets.htmlacademy.org/css/core.v284.css"><link rel="stylesheet" href="https://assets.htmlacademy.org/css/profile.v236.css"><link rel="stylesheet" href="https://assets.htmlacademy.org/css/course.v246.css"><link rel="stylesheet" href="https://assets.htmlacademy.org/css/course-interface-light.v20.css"><link rel="stylesheet" href="https://assets.htmlacademy.org/css/course-interface-en.v2.css"><script src="https://assets.htmlacademy.org/js/sentry.js" data-sentry="3774884cc81746ed84c0ba7c5cd4ac7b" data-project="26" data-version="2"></script><link rel="stylesheet" href="/css/custom.css"><link rel="stylesheet" href="/css/cookies.css"><link rel="preload" as="script" href="https://assets.htmlacademy.org/js/general.v274.js"><title>Summary of “Loops”. Part 2 — Loops — HTML Academy</title><meta name="csrf-token" content="9164caf322823086fca37a7326b9bd2a54"><meta property="og:type" content="website"><meta property="og:site_name" content="HTML Academy"><meta name="twitter:url" property="og:url" content="https://htmlacademy.org"><meta name="twitter:title" property="og:title" content="Interactive online courses HTML Academy"><meta name="twitter:description" property="og:description" content="Together we’ll learn how to work with real code, solve true-to-life problems, use cutting edge technologies. Minimum of boring theory and lots of practical tasks."><meta name="twitter:image" property="og:image" content="https://htmlacademy.org/og/htmlacademy.png"><meta name="twitter:card" content="summary_large_image"><link rel="canonical" href="https://htmlacademy.org/courses/javascript-programming/loops/summary-2"><meta name="theme-color" content="#2f358f"></head><body class="course-interface course-interface--light course-interface--full" data-base="/assets/courses/4/"><header class="page-header page-header--course"><div class="page-header__inner"><div class="page-header__top"><a class="page-header__logo" href="/" aria-label="HTML Academy Home"><img src="https://assets.htmlacademy.org/img/logo--small.svg?cs=1218aec0be4a5f23db79ad29a14e30f7f9fb9a25" width="24" height="36" alt="HTML Academy"></a><nav class="main-nav main-nav--mini" role="navigation"><div class="main-nav__course-nav"><a class="main-nav__course-item main-nav__course-button main-nav__course-button--prev" href="/courses/javascript-programming/loops/dart-machine-5">Dart machine: final scoreboard</a><div class="main-nav__course-item main-nav__course-list main-nav__course-list--collapsed"><b class="main-nav__course-title">Loops</b><span class="main-nav__course-stat">27/28</span><div class="main-nav__course-contents"><a class="main-nav__course-contents-link" href="/courses/javascript-programming/loops">Back to the list of tasks</a><ul class="main-nav__course-contents-list"><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/print-3-pages">1. New project: driver development</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/use-for-loop">2. Managing the number of copies</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/print-all-pages">3. Learning the for loop</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/print-pages-fixed">4. Correcting the loop</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/print-reverse">5. Printing the pages in reverse order</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/print-odd-pages">6. Printing only odd pages</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/print-even-pages">7. Printing only even pages</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/all-modes-1">8. Printing driver: copy mode</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/all-modes-2">9. Printing driver: all pages</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/all-modes-3">10. Printing driver: pages in reverse order</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/all-modes-4">11. Print driver: even and odd pages</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/all-modes-5">12. Print driver: switching evens and odds</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/accumulation">13. Accumulation in the loop</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/conditions">14. Checks in loops</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/division">15. Searching for an even number</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/calc-toner-1">16. How much does printing cost?</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/calc-toner-2">17. Economy printing</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/calc-toner-3">18. Saving ink</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/summary-1">19. Summary of “Loops”. Part 1</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/for-challenge">20. Third program: “Protein shake!”</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/hello-while">21. It’s been a “while”</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/while-total">22. The while loop, summation</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/dart-machine-1">23. Another project: a dart machine</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/dart-machine-2">24. Dart machine: accumulating misses</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/dart-machine-3">25. Dart machine: defeat</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/dart-machine-5">26. Dart machine: final scoreboard</a></li><li class="main-nav__course-contents-item main-nav__course-contents-item--current"><a href="/courses/javascript-programming/loops/summary-2">27. Summary of “Loops”. Part 2</a></li><li class="main-nav__course-contents-item"><a href="/courses/javascript-programming/loops/while-challenge">28. Fourth program: “Mad Dryer”</a></li></ul></div></div><a class="main-nav__course-item main-nav__course-button main-nav__course-button--next" href="/courses/javascript-programming/loops/while-challenge">Fourth program: “Mad Dryer”</a></div><ul class="main-nav__list main-nav__list--user main-nav__list--user-guest"><li class="main-nav__item" itemprop="name"><a class="main-nav__link" href="/signup?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" title="Sign up" data-modal="open" data-value="register" itemprop="url"><span class="main-nav__icon" aria-hidden="true"><svg aria-hidden="true"><use xlink:href="/img/sprites/general.svg#user"></use></svg></span>Sign up</a></li><li class="main-nav__item main-nav__item--login" itemprop="name"><a class="main-nav__link" href="/login?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" title="Log in" data-modal="open" data-value="login" itemprop="url"><span class="main-nav__icon" aria-hidden="true"><svg aria-hidden="true"><use xlink:href="/img/sprites/general.svg#login"></use></svg></span>Log in</a></li></ul></nav></div></div></header><main class="course-container"><div class="course-theory"><div class="course-theory__inner"><section class="course-theory__content"><h1 class="course-theory__content-heading course-theory__content-heading--synopsis">Summary of “Loops”. Part 2</h1><div class="course-theory__content-text"><h2>While loop</h2><h3>Syntax</h3><pre><code>while (condition) {
actions
}</code></pre><p>Actions will be executed again and again until the condition returns <code>false</code>.</p><h3>Accumulation of values in a loop</h3><pre><code>var sum = 0;
var i = 0;
while (i <= 5) {
sum += 1;
i++;
console.log(i);
}</code></pre><p>The program will log:</p><pre><code>LOG: 1 (number)
LOG: 2 (number)
LOG: 3 (number)
LOG: 4 (number)
LOG: 5 (number)
LOG: 6 (number) // Loop body code will not be executed, the condition will return false</code></pre><h2>Calculating percentage of a number</h2><p>The easiest way to find a percentage of the number is to divide the number by 100 and multiply by the percentage.</p><pre><code>// Let’s calculate 2 percent of 100
1000 / 100 * 2 = 20;
// Let’s calculate 7 percent of 1200
1200 / 100 * 7 = 84;</code></pre><br><a class="button button--green button--large button--wide button--icon" href="/courses/javascript-programming/loops/while-challenge"><svg aria-hidden="true"><use xlink:href="/img/sprites/general.svg#icon-check-bold"></use></svg>
Continue
</a></div></section></div></div><script
src="https://assets.htmlacademy.org/scripts/courses-spa/htmlacademy-task.v43.js"
data-assets-path="https://assets.htmlacademy.org/scripts/courses-spa/"
data-task-type="theory"
data-lang="en"
></script><script>HtmlacademyTask.setup(function(){});</script></main><footer class="page-footer page-footer--tiny"><div class="page-footer__inner"><p><a href="/docs/cookies">Cookies</a> ∙
<a href="/docs/privacy">Privacy</a> ∙
<a href="/docs/agreement">License Agreement</a> ∙
<a href="/docs/about">About</a> ∙
<a href="/contacts">Contacts</a> ∙
© HTML Academy OÜ, 2019−2026
</p><div class="page-footer__financial"><img src="https://assets.htmlacademy.org/img/visa-white.svg?cs=96e54ec8c587db9d4b1d8d328ffd87c2ebfd9555" alt="VISA" title="VISA" width="35" height="35"><img src="https://assets.htmlacademy.org/img/mastercard-horizontal.v2.svg" alt="Mastercard" title="Mastercard" width="35" height="35"></div></div></footer><div class="modal"><div class="modal__inner"><div class="modal__wrapper js-login hidden"><button class="modal__close icon-close" type="button" title="Close" data-modal="close"></button><h4 class="modal__header">Log in</h4><ul class="modal__social"><li class="modal__social-link modal__social-link--fb"><a href="/login/fb?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" rel="nofollow" title="Log in via Facebook"><svg aria-hidden="true"><use xlink:href="/img/sprites/general.svg#facebook"></use></svg></a></li><li class="modal__social-link modal__social-link--google"><a href="/login/google?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" rel="nofollow" title="Log in via Google"><svg height="30" width="30" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="#ffffff" d="M457.732 216.625c2.628 14.041 4.063 28.743 4.063 44.098C461.796 380.688 381.481 466 260.204 466c-116.023 0-210-93.977-210-210s93.977-210 210-210c56.704 0 104.077 20.867 140.44 54.73l-59.204 59.197v-.135c-22.046-21.002-50-31.762-81.236-31.762-69.297 0-125.604 58.537-125.604 127.841 0 69.29 56.306 127.968 125.604 127.968 62.87 0 105.653-35.965 114.46-85.312h-114.46v-81.902h197.528z"/></svg></a></li></ul><div class="modal__or"><span>or</span></div><form class="modal__form form" action="/login?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" autocomplete="off" method="post" data-submit="o"><input type="hidden" name="csrf_name" value="csrf69aed3cf33a18"><input type="hidden" name="csrf_value" value="ee1c27e9bdbeb56a3d107c5ad88c9722"><div class="form__group"><label class="sr-only" for="login-email">Email</label><input class="field field--text field--full-width" type="email" name="email" placeholder="Email" value="" id="login-email"></div><div class="form__group"><label class="sr-only" for="login-password">Password</label><input class="field field--text field--full-width ym-disable-keys" type="password" name="password" placeholder="Password" id="login-password"></div><input class="button button--full-width" type="submit" data-submit-text="Logging in…" value="Log in"></form><p class="modal__forgot-password"><a href="/recover" data-modal="open" data-value="recover">Forgot your password?</a></p><a class="modal__bottom-link" href="/signup" data-modal="open" data-value="register">Sign up</a></div><div class="modal__wrapper js-register hidden"><button class="modal__close icon-close" type="button" title="Close" data-modal="close"></button><h4 class="modal__header">Sign up</h4><ul class="modal__social"><li class="modal__social-link modal__social-link--fb"><a href="/login/fb?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" rel="nofollow" title="Log in via Facebook"><svg aria-hidden="true"><use xlink:href="/img/sprites/general.svg#facebook"></use></svg></a></li><li class="modal__social-link modal__social-link--google"><a href="/login/google?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" rel="nofollow" title="Log in via Google"><svg height="30" width="30" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="#ffffff" d="M457.732 216.625c2.628 14.041 4.063 28.743 4.063 44.098C461.796 380.688 381.481 466 260.204 466c-116.023 0-210-93.977-210-210s93.977-210 210-210c56.704 0 104.077 20.867 140.44 54.73l-59.204 59.197v-.135c-22.046-21.002-50-31.762-81.236-31.762-69.297 0-125.604 58.537-125.604 127.841 0 69.29 56.306 127.968 125.604 127.968 62.87 0 105.653-35.965 114.46-85.312h-114.46v-81.902h197.528z"/></svg></a></li></ul><div class="modal__or"><span>or</span></div><form class="modal__form form" action="/signup?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" autocomplete="off" method="post"><input type="hidden" name="csrf_name" value="csrf69aed3cf33a18"><input type="hidden" name="csrf_value" value="ee1c27e9bdbeb56a3d107c5ad88c9722"><div class="form__group"><label class="sr-only" for="email">
Email
<span class="required"><span class="sr-only">Required field</span><span class="required__star">*</span></span></label><div class="form__group-fields"><input class="field field--text field--full-width" type="email" name="email" value="" id="email" required placeholder="Email"></div></div><div class="form__group"><label class="sr-only" for="password">
Password
<span class="required"><span class="sr-only">Required field</span><span class="required__star">*</span></span></label><div class="form__group-fields"><input class="field field--text field--full-width" type="password" name="password" value="" id="password" required placeholder="Password"></div></div><div class="form__group"><label class="checkbox"><input class="checkbox__input" type="checkbox" name="agreement" value="1" required><span class="checkbox__text"><span>By signing up, you agree to our <a href="/docs/agreement" target="_blank">License Agreement</a> and <a href="/docs/privacy" target="_blank">Privacy Policy</a>.</span></span></label></div><input class="button button--full-width" type="submit" data-submit-text="Signing up…" value="Sign up"></form><a class="modal__bottom-link" href="/login?redirect_url=%2Fcourses%2Fjavascript-programming%2Floops%2Fsummary-2" data-modal="open" data-value="login">Log in</a></div><div class="modal__wrapper modal__wrapper--no-btn-bottom js-recover hidden"><button class="modal__close icon-close" type="button" title="Close" data-modal="close"></button><h4 class="modal__header">Restore access</h4><p class="modal__text-accent">Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.</p><form class="modal__form form" action="/recover" autocomplete="off" method="post" data-submit="o"><input type="hidden" name="csrf_name" value="csrf69aed3cf33a18"><input type="hidden" name="csrf_value" value="ee1c27e9bdbeb56a3d107c5ad88c9722"><div class="form__group"><label class="sr-only" for="recovery-email">Email</label><input class="field field--text field--full-width" type="email" name="email" placeholder="Email" value="" id="recovery-email"></div><script src='https://www.google.com/recaptcha/api.js'></script><div class="form__group"><div class="g-recaptcha" data-sitekey="6LetCTEqAAAAANROWtPzfC7Rfg9iIRiRt2k2FPn7"></div></div><input class="button button--full-width" type="submit" data-submit-text="Sending…" value="Send"></form><p class="modal__text">Forgot to connect your email to the profile? Email us and we’ll help.</p></div></div></div><script async src="https://assets.htmlacademy.org/js/general.v274.js" data-assets="https://assets.htmlacademy.org" data-require="toggle,navigation-courses,modal,form,nav"></script></body></html>