• 3.4 流程控制


    • 3.4.1 流程控制概述
      流程就是执行程序的顺序。
      分支:程序根据不同的条件执行不同的代码块。
      循环:程序根据一定的条件不断执行代码块,一直到不满足条件为止。

      C#中选择(分支)语句有:
      if ... else ...
      switch ... case ...


      迭代(循环)语句有:
      while
      do
      for
      foreach

    • 3.4.2 选择语句
      if ... else 常用于对多种可能的条件进行判断。
      Console.Write("请输入您的年龄: ");
      int iAge = int.Parse(Console.ReadLine());
      string s = "";
      if (iAge > 0 && iAge < 6)
          s 
      = "婴儿";
      else if (iAge >= 6 && iAge < 14)
          s 
      = "少年";
      else if (iAge >= 14 && iAge < 35)
          s 
      = "青年";
      else if (iAge >= 35 && iAge < 60)
          s 
      = "中年";
      else if (iAge >= 60)
          s 
      = "老年";
      else
          
      return;
      Console.WriteLine(
      string.Format("您属于{0}",s));

      switch ... case ... 常用于根据某个开关变量进行选择。
      Console.WriteLine("请选择一个操作:");
      Console.WriteLine(
      "1.操作");
      Console.WriteLine(
      "2.操作");
      Console.WriteLine(
      "3.操作");
      Console.Write(
      "请输入操作代号(1-3):");
      int i = int.Parse(Console.ReadLine());
      switch (i)
      {
          
      case 1:
              Console.WriteLine(
      "操作1开始");
              Console.WriteLine(
      "操作1结束");
              
      break;
          
      case 2:
              Console.WriteLine(
      "操作2开始");
              Console.WriteLine(
      "操作2结束");
              
      break;
          
      case 3:
              Console.WriteLine(
      "操作3开始");
              Console.WriteLine(
      "操作3结束");
              
      break;
          
      default:
              Console.WriteLine(
      "操作代号错误");
               
      break;
      }

      注意以下几点。
      除非case中没有任何语句,否则需要在最后写上break;除非case为空,否则程序不能从一个case贯穿到另一个ccase。
      如果没有任何case匹配将进入default语句块。
      case只能匹配一个值,不能进行逻辑操作,如果要进行逻辑操作请使用 if...else...

      上述代码还可以改为使用if ... else ...形式。
      Console.WriteLine("请选择一个操作:");
      Console.WriteLine(
      "1.操作");
      Console.WriteLine(
      "2.操作");
      Console.WriteLine(
      "3.操作");
      Console.Write(
      "请输入操作代号(1-3):");
      int i = int.Parse(Console.ReadLine());
      if (i == 1)
      {
          Console.WriteLine(
      "操作1开始");
          Console.WriteLine(
      "操作1结束");
      }

      else if (i == 2)
      {
          Console.WriteLine(
      "操作2开始");
          Console.WriteLine(
      "操作2结束");
      }

      else if (i == 3)
      {
          Console.WriteLine(
      "操作3开始");
          Console.WriteLine(
      "操作3结束");
      }

      else
          Console.WriteLine(
      "操作代号错误");

      在这里需要注意,如果一个代码块中有一条以上的语句请使用{}来包括代码。如果语句只有一条,你可以省略{}(上例中else的情况)。
    • 3.4.3 迭句语句
      while常用于根据某个条件进行循环操作。如果条件为true则不断循环一直到条件为false为止。
      int i = 1;
      while (i < 6)
      {
          Console.WriteLine(i);
          i
      ++;
      }

      这段代码输出了1~5。注意,在每次循环语句代码块中需要修改条件,否则循环一直进行下去。不过,你可以不使用额外的语句修改条件变量,上述代码等价于下面的代码。
      int i = 1;
      while (i++ < 6)
      {
         Console.WriteLine(i
      -1);
      }

      循环语句体现了计算机的强大性能,使用循环语句能让计算机进行大量计算操作。比如一个简单的累加操作。
      int iResult = 0;
      Console.Write(
      "1+2+3+…n, n= ");
      int n = int.Parse(Console.ReadLine());
      int i = 1;
      while (i <= n)
      {
          iResult 
      += i;
          i
      ++;
      }

      Console.WriteLine(
      "累加结果为{0}", iResult);

      do...while...语句和while差不多。区别在于while是先判断条件后执行代码块,do...while是先执行代码块后判断条件,因此do...while语句至少会执行一次代码块。
      int i = 1;
      do
      {
          Console.WriteLine(i);
          i
      ++;
      }

      while (i < 6);

      和使用while语句一样输出1~5,如果你把代码改为:
      int i = 1;
      do
      {
          Console.WriteLine(i);
          i
      ++;
      }

      while (i < 1);

      虽然不满足条件,但是仍然执行一次代码块,如果改为while的话就一次也不会执行(因为它是先进行判断的)。

      for 语句常用于遍历操作。所谓遍历,就是循环访问某个多值类型中的所有成员。比如输出一个数组中所有元素。当然for也可以用于进行进行N次操作,使用for,条件变量会自动根据我们设定的步进进行变化。
      for (int i = 1; i <= 5; i++)
          Console.WriteLine(i);

      上述代码等价于:
      int i = 1;
      while (i <= 5)
      {
          Console.WriteLine(i);
          i
      ++;
      }

      for()语句中需要按次序填写如下语句。
      ·声明变量语句。
      ·判断条件语句。
      ·步进语句。
      for (int i = 1; i<=5; i++) 就表示使用i作为步进变量,i<=5 的时候进行循环,每次 i+1。在这里要说明几点。
      ·步进变量放在for内声明,不要使用for外面的变量作为步进变量。
      int i = 1;
      for (; i <= 5; i++)
          Console.WriteLine(i);

      虽然这段代码是可行的,但是不推荐这样写。步进变量在for使用以后就不再有利用价值了。在for中声明的变量仅仅在for内有效。

      前面说过,for经常用于遍历某个多值类型(比如数组)
      string[] StringArray = "小朱""小杨""小张" };
      for (int i = 0; i < StringArray.Length; i++)
          Console.WriteLine(StringArray[i]);

      在3.2.3中我们还介绍了一种多值类型枚举。使用for遍历枚举的作操也很常见。
      class Program
      {
          
      enum Direction
          
      {
              North,
              south,
              East,
              West
          }

          
      static void Main(string[] args)
          
      {
              
      string[] arr = Enum.GetNames(typeof(Direction));
              
      for (int i = 0; i < arr.Length; i++)
                  Console.WriteLine(arr[i]);
         }

      }

      ·最后要说的迭代语句是foreach。foreach和for使用方法不同,只需要指明需要从哪个变量中遍历哪个类型的元素。
      string[] StringArray = "小朱""小杨""小张" };
      foreach (string s in StringArray)
          Console.WriteLine(s);
      int [] list = {1,2,3,4};
      foreach (int i in list)
          Console.WriteLine(i);

      注意foreach的使用方法:foreach(元素类型代表元素的变量in需要遍历的变量)。
      for 和 foreach的本质区别在于,我们能在for的代码块中更改元素的值,而foreach不能(foreach为只读遍历)。
      int[] list = 1234 };
      for (int i = 0; i < list.Length; i++)
          list[i] 
      *= 10;
      foreach (int i in list)
           Console.WriteLine(i);

      程序输出10、20、30、40
  • 相关阅读:
    request.getParameterMap 跟request.getParameter区别
    SQL语句中---删除表数据drop、truncate和delete的用法
    今日出现两个错误
    html和jsp的区别及优缺点
    怎么将 美国的日期格式改成中国的日期格式
    java web相关的面试题
    i++与++i的关系
    Oracle常见的语法,以及跟MySQL的区别
    DBA
    java基础之印象笔记
  • 原文地址:https://www.cnblogs.com/0754ydj/p/1247172.html
Copyright © 2020-2023  润新知