📑 Table of Contents

do-while循环(英語:do while loop),也有稱do循环,是電腦程式語言中的一種控制流程語句。主要由一個代碼塊(作為迴圈)和一個表達式(作為迴圈條件)組成,表達式為布林(boolean)型。迴圈內的代碼執行一次後,程序會去判斷這個表達式的返回值,如果這個表達式的返回值為“true”(即滿足迴圈條件)時,則迴圈內的代碼會反覆執行,直到表達式的返回值為“false”(即不滿足迴圈條件)時終止。程序會在每次迴圈執行一次後,進行一次表達式的判斷。

do-while循环执行过程

一般情況下,do-while迴圈與while循环相似。兩者唯一的分別:do-while迴圈將先會執行一次迴圈內的代碼,再去判斷迴圈條件。所以無論迴圈條件是否滿足,do-while迴圈內的代碼至少會執行一次。因此,do-while迴圈屬於後測循環(post-test loop)。

一些語言有其他的表達方式。例如Pascal就提供 repeat until 循环,運作方法剛剛相反。 repeat 部分不斷重複,直到 until 條件滿足。換言之, until 條件是 false 的時候,迴圈會繼續執行。

程序示例

编辑

C

编辑
#include <stdio.h>
#include <stdlib.h>
int main()
{  
    int i = 5; /*宣告整數i*/
    do {
        i--;
    } while (i > 0);
    printf("%d",i);
    return 0;
}

C#

编辑
using System;
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 5; /*宣告整數i*/
            do {
                i--;
            } while (i > 0);
            Console.WriteLine(i);
        }
    }
}

Java

编辑
class main {
    public static void main (String args[]){
    int i = 5;
    do {
        i--; // 迴圈
    } while (i > 0); // 迴圈條件
    System.out.println(i);
    }
}


📚 Artikel Terkait di Wikipedia

While迴圈

先檢查陳述是否成立,因此這種控制流程通常被稱為是一種前測試迴圈(pre-test loop)。相對而言Do While迴圈,是在迴圈區塊執行結束之後,再去檢查陳述是否成立,被稱為是後測試迴圈。 '這是一個用While迴圈的例子 dim counter as Integer dim Tick as Integer

For迴圈

for迴圈(英語:for loop)在電腦科學是一種程式語言的迭代陳述,能夠讓程式碼反覆的執行。 它跟其他的迴圈,如while迴圈,最大的不同,是它擁有一個迴圈計數器,或是迴圈變數。這使得for迴圈能夠知道在迭代過程中的執行順序。 C語言中傳統的for-loop包含三個部分:初始化、條件、遞增,這三個部分都是可有可無的。

前測循環

在電腦科學,前測循環(英語:Pre-test Loop)是指檢查條件後,才會執行循環。 for循環和while循環屬於前測循環。首先檢查條件(condition),若條件是TRUE,才會執行循環部份。 後測循環(Post-test Loop)是指執行循環後,才檢查條件。因此,循環部份會最少執行一次。 do-while

無窮迴圈

10'跳到行號=10的位置 X86組合語言的例子: loop: ;空的無窮迴圈,直接跳到"loop"標籤的位置 jmp loop Python的例子: while True: print("Infinite Loop")#顯示"Infinite Loop"字串 以下是一個Visual Basic無窮迴圈的例子:

迴圈

while,後者一般會標示until。 其判斷條件可能在迴圈一開始就進行,或是在迴圈最後才進行。前者的迴圈不一定會執行,而後者1的迴圈至少會執行一次。 DO WHILE (test) repeat xxx xxx LOOP until test; while (test) { do xxx

基本塊

STRING$(NumStars, "*") PRINT Stars$ DO INPUT "Do you want more stars? ", Answer$ LOOP UNTIL Answer$ <> "" Answer$ = LEFT$(Answer$, 1) LOOP WHILE UCASE$(Answer$) = "Y"

BogoMips

(time)) ) 值。源码解释如下: /* * A simple loop like * while ( jiffies < start_jiffies+1) * start = read_current_timer(); * will not do. As we don't really know whether

QBasic

  END IF 多分支语句SELECT 改进了循环结构 增加以下两个循环语句: WHILE循环   WHILE <条件>    <循环体>   WEND DO循环   DO WHILE <条件>    <循环体>   LOOP 子程序和函数作为单独的模块 不需要行号,雖然依舊支援行號的使用。 Hello