第三章 C#程序结构 (3.3 循环结构)

  (1) while循环

当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环

【案例】

 输入一字符串,以按Enter键结束,统计该字符中英文字符、数字字符及其他字符的个数。

案例目的

 掌握while语句的用法。

【代码及分析】

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            char c = Convert.ToChar(Console.Read());
            int n = 0;//n为统计一共输入了多少个字符
            int nz = 0, ns = 0,nq = 0;
            while (c != '
')
            {
                if ((c >= 'a' && c <= 'z')|| (c >= 'A' && c<= 'Z'))//表示不管输入的英文字母是大小写都一并统计                                
                        nz++;//统计英文字符的变量                                       
               
                else if (c>='0'&&c<='9')//输入的数字字符统计                
                    ns++;//统计数字字符的变量                               

                else
                    nq++;//统计其他字符的变量

                c = Convert.ToChar(Console.Read());
                n++;                
            }
            Console.WriteLine("一共输入{0}个字符,其中英文字符有{1},数字字符有{2},其他字符有{3}", n - 1, nz, ns, nq - 1);
            Console.ReadLine();
        }
    }
}

运行结果如下:

  (2)do-while循环

do…while 是先执行一次循环体,然后再判别表达式

【案例】

 本案例输入一个自然数,要求将自然数的每一位数字按反序输出,例如:输入0254131,输出1314520 。

【案例目的】

  掌握do-while循环语句及与while语句的区别。

【代码及分析】

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            int num, digital;
            Console.WriteLine("请输入一个自然数:");
            num = int.Parse(Console.ReadLine());
            do
            {
                digital = num % 10;
                num /= 10;
                Console.Write(digital);
            } while (num > 0);
            Console.ReadLine();
        }        
    }
}

运行结果如下:

 

(3)for循环

表达式 1 首先执行且只执行一次;然后执行表达式 2,通常都是一个用于判定条件的表达式,如果表达式 2 条件成立,就执行(需要执行的语句);然后再执行表达式 3;再判断表达式 2,执行(需要执行的语句);再执行表达式 3.....一直到表达式 2 不成立时,跳出循环继续执行循环后面的语句。

【案例1】求阶乘的和

 【代码】

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int sum = 0;
            int n = int.Parse(Console.ReadLine());
            for (int i = 0; i < n; i++)
            {
                int sum1 = 1;//定义变量sum1,每次循环都赋予其初始值1,求阶乘专用
                for (int j = 1; j <= i + 1; j++)
                {
                    sum1 = sum1 * j;
                }
                sum = sum + sum1;//将每次阶乘的和相加
            }
            Console.WriteLine(sum);
            Console.ReadLine();
        }
    }
}

运行结果如下:

原文地址:https://www.cnblogs.com/programme-maker/p/10683253.html