C#入门篇5-4:流程控制语句 while

#region while语句的使用
    public class WhileApp
    {
        // 这是一个支持单用户的服务器模型
        public static void Fun4()
        {
            // 打印软件的欢迎信息
            Console.WriteLine("欢迎使用whileApp V0.1");

            // 打印命令输入符
            Console.Write(">");

            // command用于存储用户的命令
            string command;

            // 读入用户的命令
            // 命令为exit表示退出程序--只要输入的不是“exit”循环就一直执行
            while ((command = Console.ReadLine()) != "exit")
            {
                switch (command)
                {
                    // 处理get命令
                    case "get":
                        doGet();
                        break;

                    // 处理put命令
                    case "put":
                        doPut();
                        break;

                    // 处理缺省命令
                    default:
                        doDefault();
                        break;
                }

                // 打印命令输入符
                Console.Write(">");
            }
        }

        // 处理get命令
        private static int doGet()
        {
            // 待加入真正的get处理动作
            Console.WriteLine("获取文件...ok");

            return 0;
        }

        // 处理put命令
        private static int doPut()
        {
            // 待加入真正的put处理动作
            Console.WriteLine("传送文件...ok");

            return 0;
        }

        // 处理缺省命令
        private static int doDefault()
        {
            // 打印出错信息
            Console.WriteLine("命令错误");

            // 提示正确用法
            Console.WriteLine("whileApp V0.1 支持的命令集有:");
            Console.WriteLine("\tget:\t获取文件");
            Console.WriteLine("\tput:\t传送文件");
            Console.WriteLine("\texit:\t退出程序");

            return 0;
        }
    }

    public class C4
    {
        //计算一个数的阶乘
        public static void Factorial(int num)
        {
            int input = num;
            double i = 1;
            int n = 1;
            while (n <= num)
            {
                i *= n;
                n++;
            }
            Console.WriteLine(i);
        }

        //计算任意两个数之间的偶数之和 奇数之和
        public static void Sum()
        {
            Console.WriteLine("请输入最小值:");
            int min = int.Parse(Console.ReadLine());

            Console.WriteLine("请输入最大值:");
            int max = int.Parse(Console.ReadLine());
            int i = 0;
            int j = 0;

            int n = min;
            while (n < max)
            {
                if (n % 2 == 0)
                {
                    i += n;
                }
                else
                {
                    j += n;
                }
                n++;
            }
            Console.WriteLine("偶数之和:" + i);
            Console.WriteLine("奇数之和:" + j);
            /*
             * 每个变量做他们应该做得事情
             * 输入变量min,max
             * 输出变量i,j
             * 循环变量n
             * 各司其职
             * 有两个明白:
             * 明白输入什么;
             * 明白输出什么这是结果。
             * 什么样的流程结构
             * 什么地方需要判断
             */
        }

        
        //编程规范 以上两个程序要着重学习程序到底应该怎么写
        //变量的盛名 
     

        //牛牛生牛,要着重于问题的分析啊
        public static void Fun1()
        {
            //一头母牛,每四年生一头小母牛,小母牛四年后又生小母牛,问100年后有几头母牛
            int i = 0;//循环变量
            int count = 1;//记录牛的总数
            while (i < 100)
            {
                count *= 2;
                i += 4;
                Console.WriteLine("第{0}年的母牛数量是:{1}", i, count);
            }
        }

        //兔子生兔子问题
        public static void Fun1_1()
        {
            // 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
            //后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
            int a = 1;
            int b = 1;
            for (int i = 1; i <= 10; i++)
            {
                //变量的传递,依次覆盖。
                a = a + b;
                b = a + b;
                Console.WriteLine("{0}\t{1}", a, b);
            }
        }

        //猴子吃桃
        public static void Fun2()
        {

            /* 
             * 猴子第一天摘了若干桃子吃了一半,不过瘾,有多吃了一个
             * 以后每天都吃剩下的一半多一个,到第十天只剩一个桃子
             * 问:第一天摘了多少桃子?
             */

            int intNum = 1;//表示第10天的桃子数量
            //倒着推循环9次得到第一天到底摘了多少桃子
            int i = 1;
            while (i <= 9)
            {
                intNum = (intNum + 1) * 2;
                Console.WriteLine("第{0}天的桃子数是:{1}\n", 10 - i, intNum);
                i++;
            }

        }

        //本例演示青蛙跳井
        public static void Fun3()
        {

            //一口井深100米,青蛙跳5米后又下滑3米,问青蛙用多少次跳出此井?
            /*
             当不知道循环的次数事采用while循环,
             循环已知用for循环,
             对于一个循环关键要知道它的循环变量,和最终终止的条件
             while循环的特点是:
             1--在循环体外面进行循环变量的初始化,
             2--再循环体里面进行自增自减操作
             */

            //青蛙跳的累计高度始终在变,因此将它当作循环变量
            //记录青蛙跳的高度
            int H = 0;

            //计数器记录循环了多少次即青蛙跳的次数
            int cnt = 0;
            //只有当青蛙跳的累积高度小于100时,循环才继续。
            //如果青蛙的累积高度大于或等于100青蛙就没必要在跳了
            while (H < 100)
            {
                H += 5;
                cnt++;
                //每次跳之后,cnt加1 证明青蛙跳了一次,同时 判断一下跳之后的高度是否超过了
                //100,如果超过了,循环就没必要进行了
                if (H >= 100)
                {
                    break; // 强制退出循环
                }
                H -= 3;
            }
            Console.WriteLine("青蛙跳了" + cnt + "");
        }

    }
    #endregion

 

你可能感兴趣的:(while)