C#的学习9.27第三天

175 阅读2分钟

一、复习switch..case选择语句

 //输入星期几,输出工作日还是休息
 string a= Console.ReadLine();
        switch (a)
        {
            case "星期一":
                Console.WriteLine("工作日");break;
            case "星期二":
                Console.WriteLine("工作日"); break;
            case "星期三":
            case "星期四": 
                Console.WriteLine("工作日"); break;
            case "星期五":
                Console.WriteLine("工作日"); break;
                default: Console.WriteLine("放假"); break;
        }

二、循环

1、while循环

        //while循环格式
        while(判断条件)//条件为假才会跳出循环体
        {
            循环体;
        }

(1)例题,死循环(条件一直为真)

        while (3 > 2)
        {
            Console.WriteLine(1);
        }

(2)例题,正常循环

        int i = 1;
         while (i > -1)
         {
             Console.WriteLine(1);
             i--;
             Console.WriteLine(i);
         }

(3)遍历输出1-10

         int i = 1;
        while(i<=10)
        {
            Console.WriteLine(i);
            i++;
        }

(4)break,continu之间的区别

        int k = 0;
        while (true)
        {
            Console.WriteLine(k);
            if (k == 100) break;//break 跳出整个循环,continue跳出当前这一次(遇到continue直接跳出)
            k++;
        }

(5)题目:输入整数n,计算1到n的总和

        int n = Convert.ToInt32(Console.ReadLine());
        
        int  s = 0;
        while (n >0)
        {
            s = s + n;
            n--;
        }
        Console.WriteLine(s)

(6.1)输出1-100中的偶数(while循环)

        int i = 1;
        while(i <= 100)
        {
            if(i % 2==0)
            Console.WriteLine(i);
            i++;
        }

(6.2)输出1-100之间的偶数(for循环)

        for (int i = 1; i <= 100; i++)
         {
             if (i%2 == 0)
             {
                 Console.WriteLine(i);
             }
         }

(7)3n+1问题(输出次数,比如输入3输出7,遇到奇数3n+1,遇到偶数n/2)

         int n = Convert.ToInt32(Console.ReadLine());
         int i=0;
         while (n>1)
         {
             if (n % 2 != 0)
             {
                 n=3*n + 1;
             }
             else
             {
                 n = n / 2;
             }
             i++;

         }
         Console.WriteLine(i);

(8)输入学生的个数,和学生的年龄,求出学生的平均年龄,并且保留两个小数

         Console.WriteLine("请输入学生的个数:");
          int i = Convert.ToInt32(Console.ReadLine());
          double sum = 0;
          double avg;
          for (int j = 0; j < i; j++)
          {
              Console.WriteLine("请输入学生年龄:");
              int age = Convert.ToInt32(Console.ReadLine());
              sum = sum + age;
          }
          avg = sum/i;
         // Console.WriteLine(Math.Round(avg, 2));
          Console.WriteLine("学生的平均年龄是"+avg.ToString("F2"));

(9)输入两个整数,计算两者间能被17整除的数的和

          Console.WriteLine("请输入两个整数");
         int n = Convert.ToInt32(Console.ReadLine());
         int m = Convert.ToInt32(Console.ReadLine());
         int c;
         int sum = 0;

         if (n > m)//进行大小数的交换
         {
             c = n;
             n = m;
             m = c;
         }
             for (int i = n; i <= m; i++)
             {
                 if(i%17 == 0)
                 {
                     sum=sum+i;
                 }
         }
         Console.WriteLine(sum)

2、do..while循环(不管满不满足条件,都会先执行一次)

        //结构
        int k = 0;
          do
          {
              Console.WriteLine(1);
              k++;
          }while (k<10);

(1)、例题,输入一个整数a,输入一个整数n,计算a的n次方

          Console.WriteLine("请输入两个正整数");
        int sum = 1;
        int a= Convert.ToInt32(Console.ReadLine());
        int n = Convert.ToInt32(Console.ReadLine());
        do
        {
            sum = sum * a;
            n--;
        
        } while (n > 0);
        Console.WriteLine(sum);

(2)小球落10次。每次反弹是落下的一半高度,输入初始高度,计算十次后的反弹高度和总路径

        //输入小球的初始高度
        /*double h = Convert.ToInt32(Console.ReadLine());
        double sum = 0;
        for (int i = 1; i <= 10; i++)
        {
            h /= 2;
            sum = sum + 3 * h;//因为在之前h/2,所以全部高度是3倍的h;
        }
        Console.WriteLine("第10次的反弹高度"+h);
        Console.WriteLine("总共经过了多少"+sum);

(3)打印所有水仙花数,水仙花数就是一个三位数的本身等于,个位数的三次方+十位数三次方+百位数三次方

        for(int a = 100; a < 1000; a++)
        {
            int b = a / 100;//百味
            int c = (a / 10)%10;//十位
            int d = a % 10;//个位
            if (a == b * b * b + c * c * c + d * d * d)
            {
                Console.WriteLine(a + "是水仙花数");
            }
        }

(4)输入n,输出n层的三角形

        Console.WriteLine("请输入一个整数");
        int n = Convert.ToInt32(Console.ReadLine());
        for(int i = 1; i <= n; i++)//控制层数的循环
        {
            for(int j = 1; j <= i; j++)//控制输出星号个数的循环,
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }

(5)输入n,输出n层的等腰三角形

        Console.WriteLine("请输入一个整数");
        int n = Convert.ToInt32(Console.ReadLine());//i是当前行号,
        for (int i = 1; i <= n; i++)
        {
            for(int a= 1; a <=n- i; a++)
            {
                Console.Write(" ");
            }
           for ( int j=1; j<=2*i-1;j++)
            {
                Console.Write("*");

            }
            Console.WriteLine();

        }