循环的妙用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环的妙用相关的知识,希望对你有一定的参考价值。

  当我们在学习程序设计的过程中,我们会发现有很多重复的步骤,变化的仅仅是当中的某一个变量,这就要引入我们的一个重要的知识——“循环”。循环就是重复执行语句,这是个很方便又很有意思的技术,可以重复操作任意多次,而不必编写相同的代码。很多复杂的计算,我们可以通过循环交给电脑,仅仅两行代码,坐享其成,何乐而不为呢。

  目前,在面向过程的程序设计时,循环起到了核心的作用,大部分的问题都需要通过循环解决,使用比较频繁的便是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();                          

            }

以上是关于循环的妙用的主要内容,如果未能解决你的问题,请参考以下文章

for循环的妙用

setTimeout的妙用2——防止循环超时

小循环的妙用

读源码学编程之——死循环妙用

KMP的妙用(利用next数组寻找字符串的循环节)

妙用next数组打表求最小循环节len