Javascript初學者課程(10)-兩種while迴圈

Javascript初學者課程(10)-兩種while迴圈
Javascript初學者課程(10)-兩種while迴圈

本日的JavaScript教學就是要教你正確應用兩種while迴圈哦!

while 迴圈

前端工程師而言,只要條件成立,JavaScript 的「while 迴圈」就會重複執行一段程式碼。

while 迴圈的 JavaScript 語法如下所示:

See the Pen JavaScript10-while-loop-1 by Tedutw (@Tedutw) on CodePen.

以下為 while 迴圈的範例:變數 i 的初始值等於 0、條件為「當 i 的值小於或等於 7 」時,就執行「顯示變數 i 的值,並且把 i 的值再加 1」。然後重複執行迴圈。

See the Pen JavaScript10-while-loop-2 by Tedutw (@Tedutw) on CodePen.

只要 i 小於或等於 7,迴圈就會繼續執行程式。每次迴圈運行時,數值都會增加 1,於是輸出了 1 到 7 的值。

只要當條件一直成立時,迴圈則會繼續執行程式,直到條件不成立為止。在下條件時要小心,如果條件一直成立的話,迴圈就會一直執行下去,不會停止。

do…while 迴圈

do…while 迴圈是 while 迴圈的變體。在檢查條件是否成立之前,此迴圈會先執行一次程式碼,然後只要條件為真,迴圈將會重複循環。

do…while 迴圈的 JavaScript 語法如下

See the Pen JavaScript10-do-while-loop-3 by Tedutw (@Tedutw) on CodePen.

注意:分號必須寫於 do…while 迴圈的最末端

do…while 迴圈的範例如下:變數 i 的初始值等於 0、執行「顯示變數 i 的值,並且把 i 的值再加 1」、條件為「當 i 的值小於或等於 7 」。

See the Pen JavaScript10-do-while-loop-5 by Tedutw (@Tedutw) on CodePen.

 

 

 

 

 

推薦文章:
Javascript初學者課程(11)-跳出及重新執行迴圈


Javascript初學者課程(1)-如何在網頁中嵌入?


Javascript初學者課程(2)-變數教學


人工智慧快取代掉你的工作了嗎?快為自己的未來做打算吧!!(一)


前端工程師必學課程:CSS的常見邊框屬性解釋


前端工程師往前進的基石,Class選擇器宣告法


零基礎如何花 14 小時考取 GoogleAds 認證?五種 GoogleAds 廣告不藏私攻略


鄰居們都驚呆了!我只上六個月Java課程就變成Java工程師了


44歲媽咪順利轉職網頁設計師, 家庭事業都得意


從無到有 挑戰14小時取得Google證照


2天考取Google Ads證照!新手廣告投放攻略


擺脫設備工程師血汗職涯, 零基礎的我成功轉職 Python 資料工程師

控制結構搞不定?Python大師幫幫你(11)-計算機實作

控制結構搞不定?Python大師幫幫你(11)-計算機實作
控制結構搞不定?Python大師幫幫你(11)-計算機實作

你認識Python所有的控制結構嗎?還不會的話,就跟著我們一起來認識吧!(十一)

 

本文是 Python 項目實做:一個簡單的計算器。本實作應用了 Python 的基本函數與概念:while 迴圈if 條件判斷式elif 寫法type conversion類型轉換

每個部分說明了 Python 程式的不同部分。

第一部分是計算機的起始畫面,最主要是讓用戶一直不斷輸入,直到用戶輸入「exit」為止,因此使用了while 迴圈

while True:
   print("選項:")
   print("輸入 '+' 讓兩個數值互加")
   print("輸入 '-' 讓兩個數值互減")
   print("輸入 '*' 讓兩個數值互乘")
   print("輸入 '/' 讓兩個數值互除")
   print("輸入 'exit' 來結束程式")
   user_input = input(": ")

   if user_input == "exit":
      break
   elif user_input == "+":
      ...
   elif user_input == "-":
      ...
   elif user_input == "*":
      ...
   elif user_input == "/":
      ...
   else:
      print("不知道你在輸入什麼")

上述程式還沒寫完,只完成了起始畫面與結構。接下來我們針對每個小部分來寫 Python 程式碼:

加法的部分:

elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))

Python教學中,當用戶輸入「+」後,程式就會提示輸入兩個數字。以上我們使用 float()函數,來將用戶輸入的數字強制轉變成浮點數。但是若用戶輸入的不是數字,程式就會 GG。

接下來,我們寫的程式碼,最主要是用來執行用戶輸入的兩個數字,完成加總並且將結果輸出。Python 程式碼如以下所示:

elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 + num2)
    print("答案是 " + result)

以此類推,減法的部分為:

elif user_input == "-":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 - num2)
    print("答案是 " + result)

以此類推,乘法的部分為:

elif user_input == "*":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 * num2)
    print("答案是 " + result)

以此類推,除法的部分為:

elif user_input == "/":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 / num2)
    print("答案是 " + result)

程式寫好,執行成果如下:

 

 

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(10)-for迴圈

控制結構搞不定?Python大師幫幫你(10)-for迴圈
控制結構搞不定?Python大師幫幫你(10)-for迴圈

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(十)

看這一篇之前,建議先看過這一篇「Python控制結構5.while 迴圈」複習一下 while 迴圈。

Python教學中,如果我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都會各執行一次。

for 迴圈 vs. while 迴圈

之前我們曾經介紹過的 while 迴圈用法與 if 條件判斷式相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。

while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。本次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。

以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:

count=0 
while count <= 5: 
    print(count)
    count = count + 1    

上述範例結果為:

0
1
2
3
4
5

上個範例,若我們把第二行的「count <= 5」抽掉,換成一個「合乎常理」的條件(例如 count = 0),這個 loop 就會「0,1,2,3,4,5,6,7⋯⋯」永無止盡的重複「+1」的動作。同個範例,若使用 for 迴圈,則在第一行就可以搭配 range數列,定義「終止值」。如下例:

for count in range(0,6,1):
  print(count)

上述例子結果為:

0
1
2
3
4
5

有沒有發現,原本使用 while loop 需要 4 行的 coding,使用 for loop 只要兩行?

因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用 Range數列來訂定起始值、結束條件與調整方法,是不是很精簡又方便的?Python 的 range 函數的詳細用法請見這一篇。

下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:

the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
for bandname in the_BIG4:
    print(bandname+" is a thrash metal band.")

上述例子結果為:

Megadeth is a thrash metal band.
Metallica is a thrash metal band.
Anthrax is a thrash metal band.
Slayer is a thrash metal band.

這種針對某一集合中的所有項目(例如:List串列之中的所有物件),都各執行一次例子,若用 while 迴圈來表示則需要:1、套用到 counter 「計數器」變數(計數器的數值是跟著索引跑的,所以設定起始值為「counter = 0」。串列的索引編號均是從零開始,詳細請看這篇)。;2、調整值為多加一次,故把計數器變數設為「counter = counter + 1」;3、讓迴圈結束的條件為當計數器把串列的東西全都執行結束時,因此把計數器的值設定為「最大的索引數」, 結果如下所示:

the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
counter = 0
max_index = len(the_BIG4)-1

while counter <= max_index:
   bandname = the_BIG4[counter]
   print(bandname + " is a thrash metal band.")
   counter = counter + 1

比起來,for 迴圈自帶計數的特性,真的簡化了 Python 程式碼的寫法。所以有機會遇到有次數限制的迴圈時,不妨使用 for 迴圈吧!

 

 

 

 

 

推薦文章:

 

 

控制結構搞不定?Python大師幫幫你(9)-數列生成

控制結構搞不定?Python大師幫幫你(9)-數列生成
控制結構搞不定?Python大師幫幫你(9)-數列生成

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(九)

Python 中的「range」函數可以用來生成數字序列,如果沒有指定,數字序列就會由「0」開始。下例指定數字序列生成到 20 個,如下例所示:

numbers = list(range(20))
print(numbers)

上述範例結果為:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Python 的「range」函數可以用來生成由零開始的數字序列,但是我們仍然可以指定起始值如下:

numbers = list(range(7, 14))
print(numbers)

print(range(20) == range(0, 20))

上述例子結果為:

[7, 8, 9, 10, 11, 12, 13]

True

一般在Python教學中,我們除了可以輸入兩個參數,指定序列的起始值外,其實還可以指定第三個參數(必須為整數),藉此定義每個數字中間間隔為多少。如下所示:

numbers = list(range(7, 14, 2))
print(numbers)

上述例子結果如下所示:

[7, 9, 11, 13]

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(5)-while迴圈

控制結構搞不定?Python大師幫幫你(5)-while迴圈
控制結構搞不定?Python大師幫幫你(5)-while迴圈

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(五)

Python-while 迴圈

Python教學中的 if 條件判斷式【請參考:Python控制結構2.if else條件判斷(1)】,假設評估為 True【請參考:Python控制結構1.布林值Boolean-True or False?】 的話,就會執行一次;反之則不執行。

Python 的 while 迴圈跟 if 條件判斷式相似,但是不同的是,它不只執行一次。只要條件成立,它就會不斷地重複執行。就算是有其中一段代碼被評估為 False,下一段代碼仍然會被執行。

while 迴圈構成,包含了 。

以下示範的 while 迴圈中有一個變數「i」,初始值為「1」;更新值(又稱為調整值)為「i+1」;讓迴圈結束的條件為「i <=5」。

以下示範是讓 i 的從初始值開始,程式每執行一次,i 就等於上一回合的數值再「+1」一次,直到 i 等於 5 為止停止,寫法如下:

i = 1 #初始值
 while i <=5:       #讓迴圈結束的條件
    print(i)
    i = i + 1       #更新值 (調整)

則結果為:

1
2
3
4
5
>>>

while迴圈的「infinite loop(無限循環)」

Python 的 while 迴圈中,有一種被稱作「infinite loop(無限循環)」,當條件(為True)成立時,程式就會永無止盡地重複執行。

「infinite loop(無限循環)」的範例如下:

while 7==7:
  print("這是無限循環迴圈")

結果,「這是無限循環迴圈」這行字就會不斷的重複顯示。

如果你真的受不了,你可以按鍵盤快速鍵「Ctrl-C」來阻止它繼續重複顯示。

以下也是無限循環迴圈的另一個例子,看看它的結果如何。

x=1
>>> while x>0:
         print(x)
         x+2

結果馬上會跳出一堆數字,且不斷的在跳出中。後出來的數字,都是前一個數字 +2 的結果。真的受不了,就按鍵盤快速鍵「Ctrl-C 」跳出吧!

跳出while迴圈:break

要結束 while 迴圈循環,就得使用 break 敘述。在迴圈循環時,一遇到 break 敘述,就會讓迴圈立即停止循環。範例如下:

i = 1 #初始值
while 1==1:
  print(i)
  i = i + 1  #更新值 (調整) 
  if i >= 5: #讓迴圈結束的條件
    print("Breaking")
    break
>>>

上述的代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 為「5」時,就輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果為:

1
2
3
4
Breaking

繼續while迴圈:continue

Python 的 while 迴圈中,有一個與 break 敘述相對的,就是 continue —— 跳回到迴圈的頂部繼續循環,而不是停止循環。

i = 1 #初始值
while True:
  print(i)   
  i = i + 1  #更新值 (調整) 
  if i == 5: 
    print("Skipping 5")
    continue
  if i == 7: #讓迴圈結束的條件
    print("Breaking")
    break

上述的 Python 代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 等於「5」時,就輸出「Skipping 5」並且跳回到迴圈的頂部「print(i)」繼續從「5」循環,直到 i 等於「7」時輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果如下所示:

1
2
3
4
Skipping 5
5
6
Breaking

 

 

 

 

 

 

推薦文章: