黑马程序员_C#语言中各种循环的优缺点

来源:互联网 发布:linux编码环境变量 编辑:程序博客网 时间:2024/06/05 07:58

C#语言中各种循环的优缺点

从学习C#基础的那天起,我们就开始陆续接触各种循环语句,比如:if else循环、if-else if循环、while循环、do-while循环、switch-case循环和for循环等等。由于种类繁多,导致对各种循环理解不深,使用起来也犹豫不定。今天我就介绍一下每一种的优势与缺点,好让大家在以后的使用中得心应手。

1、if else循环

语法:

if(条件)

{语句块1;}

else

{语句块2;}

如果条件为true ,则执行if下的语句块1,跳过语句块2;如果条件为false,则执行else下语句块2.

实例:

   static void Main(string[] args)

        {

            string username = "admin";

            string password = "888888";

            if (username == "admin" && password == "888888")

            {

                Console.WriteLine("登录成功!");

            }

            else

            {

                Console.WriteLine("登录失败");

            }

            Console.ReadKey();  

        }

优势:if else适合用于逻辑判断简单,循环次数较少的程序中。

缺点:用于逻辑复杂的程序中,则比较麻烦,界面凌乱。

2、if -else if

语法:

 

if-else if语句中,只有当上一个条件不成立时,才会执行else if语句并判断,如果结果为true,则执行else if所带的语句块,执行完成后,则跳出循环。如果所有的else if都不成立,则执行最后面的else语句块,如果没有则什么都不执行。

 

实例:输入直辖市代码,判断您住在哪一个市?

  static void Main(string[] args)

        {

            //请用代码输入你所在在直辖市(北京-B,天津—T,上海-S,重庆-C)

            Console.WriteLine("请问您生活在哪一个直辖市?");

            string input = Console.ReadLine();

            if (input=="B")

            {

                Console.WriteLine("您生活在北京!");

            }

            else if (input=="T")

            {

                Console.WriteLine("您生活在天津!");

            }

            else if (input =="S")

            {

                Console.WriteLine("您生活在上海!");

            }

            else if (input =="C")

            {

                Console.WriteLine("您生活在重庆!");

            }

            else

            {

                Console.WriteLine("您生活在月球!");

            }

            Console.ReadKey();

}

优势:适用于多重判断循环以及范围内比较

缺点:如果循环太多太精确的话,则不可用。

 

3while循环

语法:

While(条件)

{

循环体

}

先判断条件是否成立,如果成立,则执行循环体,如果不成立,则跳出循环。程序结束。

实例:打印10遍”这篇课文我已经抄了N遍了“

 static void Main(string[] args)

        {

            int i = 0;

            while(i<10)

            {

                Console.WriteLine("《背影》这篇课文我已经抄了第{0}遍了!",i+1);

                i++;

            }

            Console.ReadKey();

优势:适用于先判断,再执行的程序中。

缺点:局限性很大

 

4do-while循环

语法:

Do

{

循环体

}

While(条件);

先执行循环体一次,然后判断while条件是否成立,如成立,则继续执行循环体,如不成立,则跳出循环。程序结束。

实例:编程实现小兰先表演一遍舞蹈后问老师满意吗?如不满意,则继续表演;如满意,则停止表演。

static void Main(string[] args)

        {

            string answer = "y";

            do

            {

                Console.WriteLine("小兰表演了一遍舞蹈!");

                Console.WriteLine("老师,你满意吗?y/n");

                answer = Console.ReadLine();

            }while(answer=="n");

            Console.WriteLine("表演的不错,可以回去休息了!");

            Console.ReadKey();

}

优势:一般用于先执行,再判断的程序中

缺点:局限性很大

 

5switch-case循环

语法:

Switch(表达式)

{

Case值1;语句块1;

Break;

Case值2;语句块2;

Brea;

}

实例:输入一个年份和月份,判断这个月份的天数?

 static void Main(string[] args)

        {

           Console.WriteLine("请输入年份?");

            int year = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("请输入月份?");

            int month = Convert.ToInt32(Console.ReadLine());

            switch (month)

            { 

                case 1:

                case 3:

                case 5:

                case 7:

                case 8:

                case 10:

                case 12:

                    Console.WriteLine("31天");

                    break;

                case 2:

                    if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))

                    {                     

                        Console.WriteLine("29天!"); //闰年

                    }

                    else

                    { 

                         Console.WriteLine("28天!");//不是闰年

 }

                    break;

                default:

                    Console.WriteLine("30天");

                    break;

            }

            Console.ReadKey();

}

优势:一般只能用于等值比较

缺点:处理范围较小,还容易混乱

 

6for循环

语法:

For(表达式1;表达式2;表达式3)

{

循环体;

}

实例:写一个九九乘法表(三角形)

for (int i = 1; i < 10; i++)

            {

                for (int j = 1; j <=i; j++)

                {

                    Console.Write("{0}*{1}={2}\t", i, j, i * j);//"\t"是对齐的作用

 

                }

                Console.WriteLine();//换行的作用

            }

            Console.ReadKey();

 

优势:一般用于已知循环次数的程序中和比较复杂的循环程序中。

缺点:不适用处理判断范围的程序

 

总结:其实有很多程序并不是靠单纯某个循环就能完成的,而是各个循环层层嵌套才实现的。所以学习循环的时候,不必拘谨于一种循环,尝试多种循环并用。效果会很好。谢谢大家。

 

 

本人才学浅薄,整理错误之处,还望指出,谢谢!

 

0 0
原创粉丝点击