2022.9.27VR引擎程序设计基础—while、do while 、for语句的应用例题代码练习

64 阅读1分钟

一、循环语句

1.while循环

1.基本结构

image.png

  1. 如何控制循环次数

通过改变循环判断条件的结果,让其循环到一定值的时候会不满足则跳出循环,执行次数变有限了

  1. 练习题一

image.png 示例代码主要功能部分:

              int sum = 0;
              int a = 1 ;
              int n = Convert.ToInt32(Console.ReadLine());
              while (a<=n) {
                  sum += a;
                  a++;
                  continue;
              }
              Console.WriteLine("您输入的n={0},其1+2+3+...+{1}的总和为:{2}",n,n,sum);  

5. 练习题二

image.png

示例代码主要功能部分:

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

6. 练习题三

image.png 示例代码主要功能部分:

        Console.WriteLine("请在此输入一个任意大于1的自然数n:");
        int i = 0;
        int n = Convert.ToInt32(Console.ReadLine());
        while (n > 1)
        {
            if (n % 2 != 0)
            {
                n = 3 * n + 1;
            }
            else
            {
                n = n / 2;
            }
            i++;
        }
        Console.WriteLine("变化的次数为:{0}", i);

` 7. 练习题四

image.png 提示:

image.png 示例代码主要功能部分:

        int i = 0;
        float sum = 0;
        float age = 0;
        Console.WriteLine("输入学生个数");
        int n = Convert.ToInt32(Console.ReadLine());
        while (i < n)
        {
            Console.WriteLine("请输入第{0}个学生的年龄:", i + 1);
            age = Convert.ToInt32(Console.ReadLine());
            sum += age;
            i++;
        }
        float Aage = sum / n;
        Console.WriteLine("您输入的学生个数为:{0},其中计算出的平均年龄为:{1}岁", n, Math.Round(Aage, 2));

示例代码主要功能部分:

2.for循环

  1. 基本结构

image.png

  1. 练习题一

image.png 示例代码主要功能部分:

         Console.WriteLine("请输入整数n");
        int n = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("请输入整数m");
        int m = Convert.ToInt32(Console.ReadLine());
        int temp;
        int sum = 0;
        if (n > m)      
        {
            temp = n;
            n = m;
            m = temp;
        }
        while (n <= m)
        {
            int average = (m + n) % 17;
            if (average == 0)
            {
                sum += m+n;
            }
            n++;
        }
        Console.WriteLine(sum);

3. do...while循环

  1. 基本结构

image.png

4.关于循环的其他题目

1. 练习一

image.png

方法一、利用乘方的函数具体实现代码如下:

                 Console.WriteLine("请输入整数a");
               int a = Convert.ToInt32(Console.ReadLine());
               Console.WriteLine("请输入整数n");
               int n = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("a的n次方的最终结果为", Math.Pow(a,n));//计算a的n次方

方法二、利用for循环进行循环的遍历

                 Console.WriteLine("请输入整数a");
               int a = Convert.ToInt32(Console.ReadLine());
               Console.WriteLine("请输入整数n");
               int n = Convert.ToInt32(Console.ReadLine());
               int i = 0,j=1;
               for (;i<n;i++) {
                j = j*a;
               }
                Console.WriteLine("a的n次方的最终结果为:"+j);

2. 练习二

image.png

      Console.WriteLine("请输入球的初始化高度:");
        double high = Convert.ToDouble(Console.ReadLine());
        double sum = 0;
        int i = 1;
        for (; i < 10; i++)
        {
            high = high / 2;
            sum += 3 * high;//h+2h→3h 总高度设置为了2h;
        }
        Console.WriteLine("第{0}次的高度为{1}:", i, high);
        Console.WriteLine("第{0}次总共经过了{1}", i, sum);

3. 练习三

image.png

         int flowers = 100;
        int a, b, c,sum = 0;
        for (flowers = 100; flowers <= 999; ++flowers)
        {
            a = flowers / 100;
            b = flowers % 100 / 10;
            c = flowers % 100 % 10;
            sum = a*a*a + b * b * b + c * c * c;
            if (sum == flowers) {
                Console.WriteLine(flowers);
            }
           
        }

5.变量作用域

  1. 同一个作用域中的变量不能重名
  2. 父作用域与子作用域,可以访问父作用域里面的变量,但是父作用域不能访问子作用域中定义的变量

6.循环中的break和continue

  1. break:跳出当前整个循环
  2. continue:跳出当前这一次循环,继续执行下一次循环的内容

7.循环嵌套

1.练习一

image.png

       Console.WriteLine("请输入需要需要打印三角形的层数:");
        /*  int a = Convert.ToInt32(Console.ReadLine());
          int i = 1;
          int j = 1;
          for (; i <= a; i++)
          {
              Console.WriteLine("\n");
              for (j = 1; j <= i; j++)
              {
                  Console.Write("   *");
              }

          }         //注意此处打印的为直角三角形;

         for (; i <= a; i++)
             {
                 Console.WriteLine("\n");
                 for (j = a; i<=j; j--)
                 {
                     Console.Write("   *");
                 }//此处打印的为倒三角形

2.练习二

image.png

        int n = Convert.ToInt32(Console.ReadLine());
        int i = 1;
        int j = 1;
        for (i = 1; i <= n; i++)
        {

            for (j = 1; j <= n - i; j++)
            {
                Console.Write(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++)
            {
                Console.Write("*");
            }

            Console.WriteLine();
        }

3.练习三

image.png

4.练习四 输出九九乘法表

image.png

①正序乘法表

        int i, j;
        for (i = 1; i <= 9; i++)
        {
            for (j = 1; j <= i; j++)
            {
                Console.Write(" {0}*{1}={2}",i,j,i*j);
                
            }
            Console.WriteLine("  ");
        }

②倒序乘法表

        int i, j;
        for (i = 9; i>=1; i--)
        {
            for (j = 1; j <= i; j++)
            {
                Console.Write(" {0}*{1}={2}", j, i, j * i);
            }
            Console.WriteLine(" ");
        }

5.练习五 百文买鸡问题:

image.png

代码示例:

        int g = 1, m = 1, x = 1;
        for (g = 1; g <= 33; g++)
        {
            for (m = 1; m <= 20; m++)
            {
                for (x = 1; x <= 50; x++)     
                {

                    if (3 * g + 5 * m + x*2 == 100 && g+m+x <= 100)
                    {
                        Console.WriteLine("当公鸡为:{0}只,当母鸡为:{1}只,当小鸡为:{2}只 时满足购买条件", g, m, x);
                    }
                }
            }

        }