c#入門-跳出迴圈
阿新 • • 發佈:2021-01-03
技術標籤:c#入門
除了迴圈的條件中判斷為false結束迴圈以外,有一種方法可以主動的結束迴圈:
break;
int i = 0;
while (true)
{
Console.WriteLine("請輸入一個數字以繼續,輸入0將結束迴圈");
if (Convert.ToInt32(Console.ReadLine()) == 0)
break;
Console.WriteLine($"這是第{++i}次迴圈");
}
當然,像這種東西一般都是配合if使用,不然沒什麼意義。
使用break和在條件判斷結束的區別在於:
在執行到break時會中斷迴圈,不會執行完這次迴圈剩下的內容
可以中斷迴圈的還有continue
int sum = 0, j = 0;
for (int i = 1; i < 100; i++)
{
if (i % 2 == 0) continue;
sum += i;
j++;
}
Console.WriteLine($"100以內一共有{j}個偶數,總和為{sum}");
但是continue不會跳出迴圈,會視為這次迴圈結束
該判條件的判條件,有迭代部分的判迭代部分
這兩者都只對當前的迴圈有用。如果是巢狀迴圈,只會跳出一個
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 5; j++)
{
if (i > 3 && j > 1) break;
Console.WriteLine($"i的值是{i},j的值是{j}");
}
Console.WriteLine();
}
如果想直接跳好幾層迴圈,可以用變數把bool存起來。
bool b = false;
for (int i = 0; i < 6 ; i++)
{
for (int j = 0; j < 5; j++)
{
if (i > 3 && j > 1) { b = true; break; }
Console.WriteLine($"i的值是{i},j的值是{j}");
}
if(b) break;
Console.WriteLine();
}
或者用goto跳轉
if (new Random().Next(3) > 1) goto a;
Console.WriteLine("這行程式碼可能不會執行!");
a:
Console.WriteLine("跳到這裡繼續執行!");
a是自定義的標籤,像變數一樣可以隨便寫名字。
goto a;是跳轉到標籤a後面的語句
標籤後面一定要跟隨語句。標籤後面有一個冒號
標籤像變數一樣有作用域