for
for 迴圈用來重複執行程式或程式區塊,直到指定的運算式評估為 false。
class ForLoopTest
{
static void Main()
{
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i); //主控台的輸出,文字輸出,WriteLine輸出後跳行
}
}
}
/*
Output:
1
2
3
4
5
*/
在上述範例中的 for 程式會執行下列動作。
首先,變數 i 的初始值建立。 這個步驟中只會執行一次,不管迴圈會重複幾次。
迴圈進入的條件: i <= 5,當i小於等於5條件成立(true),進入迴圈,否則的話(false),跳出迴圈。
進入迴圈:
執行迴圈主體的 Console.WriteLine ,此行是主控台的輸出程式,會把 i的值印在畫面上。
做完迴圈主體後,會執行i++ (i = i + 1),i值加1。
再判斷迴圈是否要進入(看上方)。
當 i 等於 6的時候,迴圈就會結束。
for的一般性結構如下:
for (初始子; 迴圈進入條件; 迭代子)
迴圈主體
初始子,進入迴圈前的初始敘述。
迴圈進入條件,成立true進入迴圈主體,不成立false離開迴圈結構。
迭代子:每次迴圈主體執行完後所要做的事。
static void Main()
{
int i;
int j = 10;
for (i = 0, Console.WriteLine("開始: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j))
{
// Body of the loop.
}
}
// 輸出:
// 開始: 0
// i=1, j=9
// i=2, j=8
// i=3, j=7
// i=4, j=6
// i=5, j=5
下面的範例是一個無窮迴圈:
for (; ; )
{
// ...
}
while
class WhileTest
{
static void Main()
{
int n = 1;
while (n < 6)
{
Console.WriteLine("n目前的值為:{0}", n);
n++;
}
}
}
/*
Output:
n目前的值為: 1
n目前的值為: 2
n目前的值為: 3
n目前的值為: 4
n目前的值為: 5
*/
class WhileTest2
{
static void Main()
{
int n = 1;
while (n++ < 6)
{
Console.WriteLine("n目前的值為: {0}", n);
}
}
}
/*
Output:
n目前的值為: 2
n目前的值為: 3
n目前的值為: 4
n目前的值為: 5
n目前的值為: 6
*/
while 運算式的進入測試是在每次執行迴圈"前"發生,因此有可能while 迴圈不會執行,或許執行一次以上。
在迴圈中,可使用break、goto、return 或 throw敘述將控制轉移到迴圈外部,可以終止 while 迴圈。
若要在不結束迴圈的情況下跳至下一個重覆項目,可用 continue 敘述。
請注意,上述三個範例的輸出差異取決於 int n 遞增的地方。
下面的範例將不會產生輸出。
class WhileTest3
{
static void Main()
{
int n = 5;
while (++n < 6)
{
Console.WriteLine("n目前的值為:{0}", n);
}
}
}
do
public class TestDoWhile
{
public static void Main ()
{
int x = 0;
do
{
Console.WriteLine(x);
x++;
} while (x < 5);
}
}
/*
輸出:
0
1
2
3
4
*/
do-while 迴圈 (Loop) 會在迴圈進入條件運算式之前執行一次,與 while 敘述不同。
我們可以在 do-while 區塊中的任一位置使用 break 陳述式中斷此迴圈。
我們可以使用 continue 陳述式直接跳至 while 迴圈進入條件敘述。
如果 while 迴圈進入條件敘述評估為 true,會從迴圈中的第一個敘述繼續執行。 如果迴圈進入條件敘述評估為 false,則從 do-while 迴圈之後的第一個敘述繼續執行。
do-while 迴圈也可以透過 goto、return 或 throw 敘述結束。