循環的妙用
當我們在學習程序設計的過程中,我們會發現有很多重復的步驟,變化的僅僅是當中的某一個變量,這就要引入我們的一個重要的知識——“循環”。循環就是重復執行語句,這是個很方便又很有意思的技術,可以重復操作任意多次,而不必編寫相同的代碼。很多復雜的計算,我們可以通過循環交給電腦,僅僅兩行代碼,坐享其成,何樂而不為呢。
目前,在面向過程的程序設計時,循環起到了核心的作用,大部分的問題都需要通過循環解決,使用比較頻繁的便是while循環和for循環。在使用循環的過程中,需要有很強的邏輯能力,對每個變量的變化和程序過程的控制都要掌握清楚,有時候需要更加精細地控制循環代碼的處理,還要對循環中斷的節奏掌握到位。很多程序還要用到無限循環和中斷來提升用戶的使用體驗。
下面舉一個經典的例子:哥德巴赫猜想,用這個經典而簡單的C#程序來展示面向過程的程序設計對循環的應用。
while (true)
{
Console.Clear();
Console.Write("請輸入一個大於2的偶數:");
int input = int.Parse(Console.ReadLine());
if (input <= 2 || input % 2 != 0)
{
Console.Write("輸入的數字有誤,按Enter鍵返回輸入");
Console.ReadLine();
continue;
}
//先找出從2開始到input-2的所有數
for (int i = 2; i < input - 1; i++)
{
bool isFind = false;
//判斷這個數是不是質數
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
isFind = true;
break;
}
}
//如果這個數已經不是質數,就直接進行下一輪循環,判斷下一個數
if (isFind == true)
{
continue;
}
//如果這個數是質數,就判斷cha是不是質數
else
{
int cha = input - i;
for (int j = 2; j < cha; j++)
{
if (cha % j == 0)
{
isFind = true;
break;
}
}
//如果cha不是質數,就直接進入下一輪循環,判斷下一個數
if (isFind == true)
{
continue;
}
//如果cha也是質數,就舉例成功,並且退出查找的循環
else
{
Console.WriteLine(input+"="+i+"+"+cha);
break;
}
}
}
Console.Write("按Enter鍵返回重新輸入");
Console.ReadLine();
}
循環的妙用