二、分支和循环【scholary】

  1. 分支语句
    1. switch
      switch (condition)
      
      {
      case 1:
          ...;
      case 2:
          ...;
      case 3:
          ...;
      default:
         ...; }

      注意:switch语句只有遇到break才会跳出循环,如果case1无break语句,会按顺序执行case2、case3……直到结束。break只会结束最近的switch语句。

    2. if
      int zero(int i)//if语句例子
      {
          if (i > 0)
              i--;
          else if (i < 0)
              i++;
          else
              return 0;
      }

      if语句从上到下依次判断。遇到符合条件的分支进入执行后结束。

  2. 循环语句
    1. while
      while (condition)
      {
          statement;
      }

      while循环中可以使用语句 continue 和 break。continue表示跳出本次循环   break表示跳出循环。

    2. for

      for语句形式为:  for(赋值:判断:调整)  {循环体}

          for (i=1;i < 100;i++)
          {
                  printf("%d\n", i);
          }

      在for循环中依然可以用break和continue。   break为跳出循环,continue为跳出本次循环。但与while中不同,跳出后仍会执行for语句中的表达式3

      for循环的语句中表达式是可以省略的。若判断句省略,则其恒为真。

    3. do while
          int i = 1;
          do
          {
              printf("%d ", i);
              i++;
          } while (i < 10);

      do while语句只包含执行和判断语句,需要在循环前赋值。且先执行,后判断。程序至少会执行一次。

      break 跳过判断部分,跳出循环。   continue跳过判断部分,进入下一次循环。

  1. 缓冲区与getchar函数

      输入缓冲区是输入函数读取数据的区域。用户在键盘中输入的字符会被存进输入缓冲区。

      getchar函数是头文件<stdio.h>中的一个库函数,其作用是获取输入的一个字符。保存类型为int型(ascii码)。

      scanf函数在获取string类型的数据时,遇到空格或回车时会停止,并取走之前的所有字符。但空格和回车会遗留在输入缓冲区。

      getchar函数可以用来清空输入缓冲区,代码如下:

int ch;
while ((ch = getchar()) != '/n');
{
    ;
}

  2.二分查找法

  采用分段方式查找。数据的最大查找次数为log2n,可以较大提高查找效率。

  在编写二分法程序时,有几个注意点:

  •   数据形式是离散数据
  •        最后一次查找时会遇到仅剩1数的情况  此时左标记==右标记,若该值不等于查找值会出现左右标互换
  •        查找结束比对结果

      

posted @ 2021-12-28 01:12  scholary  阅读(89)  评论(0)    收藏  举报