<C> 分支 - 2107/11/11

C语言是面向过程:

      事情1   事情2     事情3  --> 顺序结构

1. if语句:

    1.1. 格式:

   a) 单独一个if

if(条件)   // 条件可以关系运算符   逻辑运算符  数字
{
    // 如果条件成立   要执行的语句
}

如:

if(饿) 
{
   吃饭;
}

  b) if  else

  心情好吃大餐   心情不好  吃炒饭

  如:

if(心情好)
{
    吃大餐;   // 条件为真   执行的语句
}
else
{
     吃炒饭;    // 条件为假   执行的语句
{

    1.2.嵌套部分

      如:

 // 能不能先判断饿不饿,不饿输出不吃,饿再判断心情好不好了,好吃大餐,不好吃炒饭
if(饿)
{
        if(心情好)
{
        printf_s("好吃大餐");
}
else
{
         printf_s("吃炒饭");
}
}
else
{
         printf_s("不吃");
}

 

   1.3 省略

    1.3.1  else  部分如果没有就可以不要

    1.3.2  { }   可以省略  

      --> if  后面的语句只有一句 有分号  // 建议不要省略

    1.3.3  分号  表示语句结束

      如:

        if(饿);   // if后面没有匹配任何语句

    1.3.4  if {}  定义变量的问题  在一个{}中定义的变量出了{}就不能使用了

 

     1.3.5 if  else if  else

if(饿)  //条件1
{
      printf_s("不吃");  // 条件1成立就执行
}
else if(心情好)   // 条件2
{
      printf_s("好吃大餐"); // 条件1不成立  条件2成立
}
  ....//条件3
else
{
      printf_s("吃炒饭");
}

 

2. switch语句:

    有些情况用switch  比 if  方便

    让用户输入数字   打印出对应的星期几

int day;  // 日期
// 输入整数

if(day==1)
{
       printf_s("今天是周一");
}
else if(day==2)
{
       printf_s("今天是周二");   
}
else if(day=3)
{
       printf_s("今天是周三");   
}
else if(day==4)
{
       printf_s("今天是周四");   
}
else if(day==5)
{
       printf_s("今天是周五");
}
   ....
else
{
       printf_s("输入错误!");
}

 

  // 像上面这种有多个可能的取值    可以-- 枚举出来   可以用switch代替

switch(变量)
{
    case 1:printf("今天是周一");break;
    case 变量可能的取值:如果取到这个值的时候执行的语句;break;
    //.......
    default://如果上面case都没有执行   执行这一句
    printf_s("输入错误");
     break;
}

  2.1 要不要加 break

    遇到匹配的case之后  执行后面的语句   直到break为止

  2.2 default  要不要

    default  可以要可以不要

    default  可以放到任意位置

  2.3  default 要不要 break

    default 放最后可以不用加break

  2.4  swicth  中的变量类型   可以整型或者字符

    case 后面只能是整型或者字符  常量

  3.5  不要在case里面

#include <stdio.h>

int main()
{
#if 0   // if语句
    int x;   // 计算x的绝对值
    scanf_s("%d", &x);     // 相当于给x赋值   x=-56
    if (x < 0)   // 如果x小于0   那么x是负数   -->取负
    {
        x=-x;
    }
    printf("%d\n",x);

#elif 0  // 输入最大值  x  y
    int x, y;
    printf("请输入两个数:\n");
    scanf_s("%d%d", &x, &y);
    if (x > y)  // 如果x大于y  就输出x
    {
        printf_s("输出x的最大值:%d\n", x);
    }
    else
    {
        printf_s("输出y的最大值:%d\n", y);
    }

#elif 0  // 输出最大值: x  y   n
    int x, y, n;   // 定义三个变量
    printf_s("请输入三个数字:\n");
    scanf_s("%d%d%d", &x, &y, &n);  //获取x y n 的值
    if (x > y)
    {
        if (x > n)   // 比较x和y中比较大值和n
        {
            // x是最大值
            printf_s("%d\n", x);
        }
        else
        {
            printf_s("%d", n);
        }
    }
    else
    {
        if (y > n)
        {
            printf_s("%d", y);
        }
        else
        {
            printf_s("%d", n);
        }
    }

    /*
    // &&  逻辑与
    if (x > y&&x > n)
    {
        printf_s("%d", x);
    }
    else if (y > n && y > x)
    {
        printf_s("%d", y);
    }
    else
    {
        printf_s("%d", n);
    }

    */

#elif 1  // switch
    int x;
    printf_s("请输入一个数字: \n");
    scanf_s("%d", &x);
    for (int i = 1; i < x; i++)
    {
        switch (i)
        {
        case 1:printf_s("今天是周一\n"); break;
        case 2:printf_s("今天是周二\n"); break;
        case 3:printf_s("今天是周三\n"); break;
        case 4:printf_s("今天是周四\n"); break;
        case 5:printf_s("今天是周五\n"); break;
        case 6:printf_s("今天是周六\n"); break;
        case 7:printf_s("今天是周日\n"); break;
        default:
            printf_s("输入错误!");
            break;
        }
    }
    /*
    x = getchar();  // 获取到一个字符
    switch (x)
    {
    case '1':printf_s("今天是周一\n"); break;
    case '2':printf_s("今天是周二\n"); break;
    case '3':printf_s("今天是周三\n"); break;
    case '4':printf_s("今天是周四\n"); break;
    case '5':printf_s("今天是周五\n"); break;
    case '6':printf_s("今天是周六\n"); break;
    case '7':printf_s("今天是周日\n"); break;
    default:
        printf_s("输入错误!");
        break;
    }
    */



#endif
    getchar();
    return 0;
}

 

posted @ 2017-12-20 10:04  让优秀成为一种习惯  阅读(162)  评论(0编辑  收藏  举报