当我们在学习程序设计的过程中,我们会发现有很多重复的步骤,变化的仅仅是当中的某一个变量,这就要引入我们的一个重要的知识——“循环”。循环就是重复执行语句,这是个很方便又很有意思的技术,可以重复操作任意多次,而不必编写相同的代码。很多复杂的计算,我们可以通过循环交给电脑,仅仅两行代码,坐享其成,何乐而不为呢。
目前,在面向过程的程序设计时,循环起到了核心的作用,大部分的问题都需要通过循环解决,使用比较频繁的便是while循环和for循环。在使用循环的过程中,需要有很强的逻辑能力,对每个变量的变化和程序过程的控制都要掌握清楚,有时候需要更加精细地控制循环代码的处理,还要对循环中断的节奏掌握到位。很多程序还要用到无限循环和中断来提升用户的使用体验。
下面举一个经典的例子:哥德巴赫猜想,用这个经典而简单的C#程序来展示面向过程的程序设计对循环的应用。
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #008400 }
span.s1 { }
span.s2 { color: #d12f1b }
span.s3 { font: 11.0px "PingFang SC"; color: #d12f1b }
span.s4 { color: #272ad8 }
span.s5 { color: #000000 }
span.s6 { font: 11.0px "PingFang SC" }
span.s7 { color: #008400 }
span.s8 { font: 11.0px "PingFang SC"; color: #008400 }
span.s9 { font: 11.0px Menlo; color: #000000 }
span.s10 { font: 11.0px Menlo }
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();
}