自学内容网 自学内容网

鹏哥C语言(进阶)25---选择语句 if 和 switch

//------------------------------------------------------------------------------------------BIT-2-分支语句和循环语句
//分支语句   if              switch  
//循环语句  while         for              do while

#include <stdio.h>
//-------------------------------------------------------------------------------------------------------1. 什么是语句
/*
表达式语句
函数调用语句
控制语句: 分为 
//条件判断语句:if        switch
//循环执行语句:for       while         do while
//转向语句:break           goto              continue          return
复合语句
空语句
*/

//C语言是【结构化】的程序设计语言
//  顺序结构    选择结构     循环结构
//                       if                 for             
//                      switch        while
//                                       do while

//--------------------------------------------------------------------------------------------------2. 分支语句(选择结构)
//也叫条件判断语句
//  if
//  switch

//----------------------------------------------------------------------------------------------------2.1 if 语句
// 0 表示假  非0表示真

//---------------------------------------------------------------------------------------------------2.1.1 悬空else

/*
int main()
{
    if (3 == 5)//条件为假
        printf("hehe\n");//不打印
   //-------------------------------------------------------------

    int a = 10;
    if(a=3)// 一个 = 为赋值 ,不为0 即为真
        printf("xixi\n");//打印
   //------------------------------------------------------------
    int b = 5;
    if(b==3)//条件为假,不打印
        printf("lala\n");//不打印
    
   //----------------------------------------------------------
    int age = 17;
    if(age>18)//条件为假
        printf("成年\n");//不打印

   //--------------------------------------------------------
    int age2 = 18;
    if(age2<18)
        printf("未成年\n");
    else
        printf("成年\n");//打印成年

   //---------------------------------------------------------
   //如果条件成立要执行多条语句,应该使用 代码块,也就是给语句加上大括号
    // if 和 else 都默认控制一条语句
    int age3 = 16;
    if (age3 < 18)
    {
        printf("未成年\n");
        printf("不能饮酒\n"); //  if  语句后如果跟多条语句 要用大括号
    }
    else
    {
        printf("成年\n");//打印成年
    }

   //-----------------------------------------------------------多分支 if 语句
    int age4 = 22;
    scanf_s("%d",&age4);//-----------------------------------------输入的时候不加    \n
    if (age4 < 18)
        printf("青少年\n");
    //    else if(18<=age4<28)  不能这么写
    else if (age4 >= 18 && age4 < 28) //多分支
        printf("青年\n");
    else if (age4 >= 28 && age4 < 40)//多分支
        printf("中年\n");
    else if (age4>40 && age4<60)//多分支
        printf("壮年\n");
    else if (age4 > 60 && age4 <=100)//多分支
        printf("老年\n");
    else
        printf("老寿星\n");
    //所有的多分支只选择一个

    //--------------------------------------------------------
    int m = 10;
    int n = 100;
    if (m == 1)
        if (n == 100)
            printf("hehe\n");
        else//  else 和离他最近的 if  匹配
            printf("haha\n");
    //  啥也不打印,没有输出
    //  if  和 else  是一条语句

    return 0;
}

*/

//-------------------------------------------------------写代码习惯
//1.变量的命名:有意义,规范
//2.空格 空行 换行 的使用


//------------------------------------------------------------------------------------------------2.1.2 if书写形式的对比
 //--------------------------代码1
/*
int test()
{
    int a = 4;
    if (a == 3)
        return 1;
    return 0;
 }

int main()
{
    int s=test();
    printf("%d\n", s);
    return 0;
}
*/

//--------------------------代码2
/*
int main()
{
    int num = 3;
//    if (num == 5)  //判断相等不相等的问题
//    if (num = 5)    // num=5 为真,执行语句
    if (5 == num)  //防止漏写等号发现不了
        printf("hehe\n");
    else
        printf("xixi\n");

}
*/
 
 
//----------------------------------------------------------------------------------------------------2.1.3 练习
//-------------------------------------------------------练习一:判断一个数是否为奇数
/*
int main()
{
    int a = 0;
    scanf_s("%d", &a);
    //判断
    if (a%2==1)
        printf("是");
    else
        printf("否");
 }
 */

//-------------------------------------------------------练习二:输出1-100之间的奇数√√

//----------------------------------------------------自写版
/*
int main()
{
    int a = 0;
    while (a < 100)
    {
        a = a++;
        if(a%2==1)
        printf("%d ", a);
    }

    return 0;
}
*/
写对了太棒了!!!!!!夸夸自己   !!!!!!!!!!!!!!!!!!!


//----------------------------------------------------教学版1
/*
int main()
{
    int a = 1;
    while (a < 100)
    {
        
        if (a % 2 == 1)
            printf("%d ", a);
        a = a++;
    }

    return 0;
}
*/

//----------------------------------------------------教学2
/*
int main()
{
    int a = 1;
    while (a < 100)
    {
            printf("%d ", a);
        a +=2;
    }

    return 0;
}
*/

//------------------------------------------------------------------------------------------------------2.2 switch 语句
//也是一种分支语句,通常用于多分支情况
 /*
int main()
{
    int day = 0;
    scanf_s("%d",&day);

    //if (1 == day)
    //    printf("星期一\n");
    //else if(2==day)
    //    printf("星期一\n");
    //else if (3 == day)
    //    printf("星期三\n");
    //else if (4 == day)
    //    printf("星期四\n");
    ------------------------------太复杂

    return 0;
}
*/

//------------------------------------------------------------------------------------2.2.1 switch 语句中的break
 
    //-----------------------------------------switch语句  格式1
/*
int main()
{
    int day = 0;
    scanf_s("%d", &day);
    switch (day)// (  )必须是整型 int
    {
        case 1://case 语句必须是  整型+常量  表达式
        //case n:
        //case 1.5:
            printf("星期一\n");
            break;//跳出语句
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;
        case 4:
            printf("星期四\n");
            break;
        case 5:
            printf("星期五\n");
            break;
    }

    return 0;
 }
 */

    //-----------------------------------------switch语句  格式2
// 输入 1-5,输出 weekday
// 输入 6-7, 输出 weekend
/*
int main()
{
    int day = 0;
    scanf_s("%d", &day);
    switch (day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("weekday\n");  //多个case匹配同一条执行语句
        break;
    case 6:
    case 7:
        printf("weekend\n");//多个case匹配同一条执行语句
        break;
    }

    return 0;
}
*/

 //编程好习惯----------给最后一个 case 也加上 break

 
 
//---------------------------------------------------------------------------------------------2.2.2 default子句
 /*
int main()
{
        int day = 0;
        scanf_s("%d", &day);
        switch (day)
        {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                printf("weekday\n");
                break;
            case 6:
            case 7:
                printf("weekend\n");
                break;
            default:// 当输入值不符合case的值时,执行default 语句
                printf("选择错误\n");
                break;
        }

    return 0;
}
 */

 // if 语句可以表达范围, 而switch 语句做不到
 
//---------------------------------------------------------------------------------------------2.2.3 练习

//------------------------------------------------------------------------练习一
//求输出结果
int main()
{
    int n = 1;
    int m = 2;
    switch (n)
    {
    case 1:m++;// m=3 没有break,执行下一条case2 
    case 2:n++;// n=2 没有break,执行下一条case3
    case 3://进入
        switch (n)// switch允许嵌套使用
        {
        case 1:n++; //不执行
        case 2:m++; n++;//m=4 n=3
            break; //里边的switch 执行结束
        }// csae3 没有break, 继续执行 case4
    case 4:m++; //m=5
        break;//执行结束
    default:
        break;
    }
    printf("m=%d, n=%d\n", m, n);//   输出结果  m=5 n=3
    return 0;
}


原文地址:https://blog.csdn.net/most_wanted_/article/details/142178486

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!