iT邦幫忙

0

基本JavaScript 迴圈(Loop) - Training JS #9: loop statement --while and do..while

  • 分享至 

  • xImage
  •  

我一開始完全不懂迴圈是怎麼操作的,看了別人的解題方法,也不懂為什麼這樣寫,就會重複呢?
JavaScript有三種迴圈,怎麼知道什麼情況下用哪種迴圈?


JavaScript 中的三種迴圈

JavaScript 中有三種迴圈,分別是for、while、do..while,在實作中最常用到的是for、while迴圈。
所有的迴圈都必須包含:
1.初始值(begin)
2.終止條件(condition)當終止條件為 false 時停止迴圈
3.遞增或遞減的方式(step)
4.循環體(do):每一迴圈要做的事情。

。迭代:每進入一次循環體我們就稱為“一次迭代”,假設進入三次就稱為三次迭代。
。參考文章:[第四週] JavaScript — 迴圈(Loop)while、for,如果想要學習更詳細的迴圈內容,可以參考這篇文章,我覺得他寫的淺顯易懂,受益良多。


這篇要來講解我學習while迴圈的Tip!
while題目:

### Task
Coding in function padIt, function accept 2 parameters:

str, it's a string representing the string to pad, we need pad some "*" at leftside or rightside of str
n, it's a number, how many times to pad the string.

### Behaviour
You need to write a loop statement within the function that loops n times. Each time through the loop it will add one * to str, alternating on which side it is padded: the first time will add a * to the left side of str, the second time will add a * to the right side, and so on.

### Solution
function padIt(str,n){
}

這題我卡很久,因為我知道如何印出文字,但不知道如何讓他重複顯示,這時就要來說明一下解題思路:
首先:要如何判斷單數及雙數?
假設 i 是一個數字

let i = 1;
if(i%2 === 1){
  console.log("我是單數");
}else{
  console.log("我是雙數");
}

% 是取餘數的意思,上面那段語法的意思就是“如果數字i 除以2 餘數等於1的話(=== 是嚴格相等的意思),顯示我是單數,否則顯示我是雙數”

第二步:解決左右要如何顯示*

let i = 1;
let returnStr = str;
if(i%2 === 1){
      returnStr = "*" + returnStr;
    }else{
      returnStr = returnStr + "*";
    }

第三步:完整while寫法

function padIt(str,n){
  let i = 1;
  let returnStr = str;
  while (i<=n){
    if(i%2 === 1){
      returnStr = "*" + returnStr;
    }else{
      returnStr = returnStr + "*";
    }
    i++;
  }
  return returnStr;
}

i++是什麼呢?就是前面講到的“遞增或遞減的方式”
i++是遞增,i--就是遞減囉!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言