C语言:分支语句循环语句

#include<stdio.h>

//分支语句和循环语句
// 
//分支语句:if语句,switch语句
//循环语句:do while语句,while语句,for语句
//转向语句:break语句,go to语句,return语句,continue语句

1.if语句

//if语句即判断语句
// 可实现单分支多分支
// 
// if语句格式
// if(条件判断)
// 运行程序
// else   //非必要
// 运行程序
// 
// 
// eg1.单分支
//int main()
//{
//    int a = 10;
//    if (a == 2)          //括号里面进行判断若为真则执行命令
//        printf("hehe\n");//本该加大括号,但if语句下面只有一条语句可省略
//                         //if只控制到一个分号便结束,故不可在()后面加分号,若加则为空语句
//    return 0;
//}

//eg2.
//int main()
//{
//    int a = 10;
//    if (a < 18)
//    {
//        printf("未成年\n");
//        printf("不完全民事行为人\n");
//    }
//    else
//        printf("成年人\n");
//    return 0;
//}

//eg3.
//天坑:else会自动和最近if语句进行匹配,不是对齐谁和谁匹配
//int main()
//{
//    int a = 0;
//    int b = 2;
//    if (a == 1)//即a不等于1为假不会执行if里面内容
//        {if (b == 2)
//            printf("hehe\n");
//      else//故实际else对应离他最近if而不是打印haha;
//            printf("haha\n");
//       }   为防止出bug可能应养成良好的习惯,if后边加大括号
//    return 0;
//}

//eg4.多分支
//int main()
//{
//    int age = 100;//可此处直接赋值
//    scanf_s("%d\n", &age);
//    
//    if (age <= 12)
//    {
//        printf("未成年\n");
//    }
//    else if (age > 12 && age < 18)
//    {
//        printf("青少年\n");
//    }
//    else if (age >= 18 && age < 28)
//    {
//        printf("青年\n");
//    }
//    else if (age>= 28 && age < 40)
//    {
//        printf("壮年\n");
//    }
//    else if (age >= 40 && age < 60)
//    {
//        printf("中年\n");
//    }
//    else if (age >= 60 && age < 99)
//    {
//        printf("老年\n");
//    }
//    else
//    {
//        printf("老寿星\n");
//    }
//    return 0;
//}

//eg5.坑
//int main()
//{
//    int a = 5;
//    if (5 == a)
//        printf("常量应该放在左边,若放右边等于赋值符合编译规则,漏等号容易出错,放常量在左边漏等号会报错");
//    return 0;
//}

//练习1.判断一个数是否为奇数
//      判断1-100内是否为奇数
//int main()
//{
//    int num = 0;
//    //输入
//    scanf_s("%d\n", &num);
//    //判断
//    if (num <= 100)
//    {
//        if (num % 2 == 1)
//        {
//            printf("奇数\n");
//        }
//        else
//        {
//            printf("NO\n");
//        }
//        return 0;
//    }
//    else
//    {
//        printf("请在范围内查找\n");
//    }
//    
//}

//输入1-100之间的奇数
//int main()
//{
//    int i = 1;
//    while (i <= 100)
//    {
//        if(i % 2 == 1)
//        printf("%d\n", i);
//
//        i++;
//    }
//
//    return 0;
//}

2.switch语句

//switch语句属于分支语句
//语句用法:
//switch(必须整形)
//{case 整形:
//若想到此为止则case后面加break不加则会一直循环下去
// default子句   // 即所有无法匹配的case都会走到这个句子中
// switch可嵌套使用
//}

//eg:
//int main()
//{
//    int day = 0;
//    scanf_s("%d\n", &day);
//    switch (day)//此数字决定从下面哪个入口进入
//    {
//    case 1:
//        printf("星期一\n");
//        break;//有无break决定还要不要继续往下滑
//    case 2:
//        printf("星期二\n");
//        break;
//    case 3:
//        printf("星期三\n");
//        break;
//    case 4:
//        printf("星期四\n");
//        break;
//    case 5:
//        printf("星期五\n");
//    default :
//        printf("请从规定分支入口进入");
//
//
//    }
//    
//    return 0;
//}

//练习

//

//打印1-200奇数
//int main()
//{
//    int i = 0;
//    while (i <= 200)
//    {
//        if (i % 2 == 1)
//        {
//            printf("%d\n", i);
//        }
//        i++;
//
//
//    }
//    return 0;
//}

//int main()
//{
//    int a = 20;
//    int* p = &a;
//    *p = 20;
//    printf("%d\n", a);
//    return 0;
//}

3.while语句

//循环语句
//while循环
//int main()
//{
//    int i = 0;
//    while (i <= 10)
//    {
//        if (i == 5)
//        {
//            break;//当i==5时永久退出循环,不在执行循环内代码
//        }
//            printf("%d\n", i);
//            i++;
//        
//    }
//    return 0;
//}

//int main()
//{
//    int i = 1;
//    while (i <= 10)
//    {
//        i++;
//        if (i == 5)
//        {
//            break;
//        }
//        printf("%d\n", i);
//    }
//    return 0;
//}

//int main()
//{
//    int i = 1;
//
//    while (i <= 10)
//    {
//        i++;
//        if (i == 5)
//            continue;//跳过本次循环不再执行后边代码,区别于break
//        printf("%d\n", i);
//    
//    }
//    return 0;
//}

//数组名本就是地址不需要取地址符
//scanf和putchar是一类型函数
//scanf和getchar读取特点:读取到空格便会自动停下
// 
//int main()
//{//登录界面
//    printf("welcome to sb family\n");
//
//    char possword[20] = { 0 };
//    
//    printf("请输入密码:\n");
//    
//    输入
//    scanf_s("%d\n", possword);
//
//    char ch = 0;
//    while ((ch = getchar()) != '\n')
//    {
//        ;
//    }
//    printf("请确认密码(y/n):");
//    输出
//    int ret = getchar();
//    if ('y' == ret)
//    {
//        printf("登录成功\n");
//    }
//    else
//    {
//        printf("密码错误,请再次输入\n");
//    }
//    return 0;
//}

//练习:求四个数里的最大值
//int main()
//{
//    int arr[4] = { 0 };
//    //输入 通过循环把数组内四个数通通输入;
//    int i = 0;
//    while (i < 4)
//    {
//        scanf_s("%d\n", &arr[i]);
//        i++;
//    }
//    int max = arr[0];//定义假设数组内第一个数为最大值
//    i = 1;
//    while (i < 4)
//    {
//        if (max < arr[i])
//        {
//            max = arr[i];
//        }
//        i++;
//    }
//    printf("%d\n", max);
//
//    return 0;
//}

4.for语句


//for循环表达式
//for(表达式1;表达式2;表达式3)
//{循环语句};
//表达式1:用于初始化循环变量
//表达式2:用于判断是否进行循环
//表达式3:调整部分

//int main()
//{
//    int i = 0;
//    while (i < 10)
//    {
//        printf("%d\n", i);
//        i++;
//    }
//    return 0;
//}

//int main()
//{
//    int i = 0;
//    for (i = 1; i <= 10; i++)
//        printf("%d\n", i);
//    return 0;
//}

//break和continue作用和while循环作用一致,break只挑出一层for循环,continue只结束本次循环后面代码
//不要在for循环体内随便修改变量,可能让循环体失去控制,他调整部分在表达式3,

//eg1.
//int main()
//{
//    for (;;)//若省去判断部分将陷入死循环;
//        printf("hehe\n");
//    return 0;
//}

//eg2.
//int main()
//{
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < 3; i++)
//    {
//        for (j = 0; j < 3; j++)//允许for循环嵌套使用
//        {
//            printf("hehe\n");
//        }
//    }
//    return 0;
//}

//eg3.区别于例2,i在第二个for循环里面结束后值为3然后返回到第一个for循环++变4,进行判断后超出范围,结束循环,故该代码只打印3个hehe;
//int main()
//{
//    int i = 0;
//    for (i = 0; i < 3; i++)
//    {
//        for (i = 0; i < 3; i++)
//        {
//            printf("hehe\n");
//        }
//    }
//    return 0;
//}

//eg4.可以多个变量进行判断类似于一个scanf可同时取多个地址

//*****任何分支、循环若判断为假则不会进行
//***天坑 a = 0;这个即为假不会进入循环
//eg5.判断该代码进行几次循环
//int main()
//{
//    int i = 0;
//    int j = 0;
//    for (i = 0, j = 0; j = 0; i++, j++)//j = 0即赋值,j处于判断部分,为零即为假,故不会进行循环直接跳出循环部分;
//                                       //对 = 和 == 须有一个敏感度;
//    {
//        j++;
//    }
//    return 0;
//
//}

5.do while语句

//do while循环语句
//特点:至少执行一次,然后才开始循环
//break和continue作用和其他循环一致
//break:永久退出循环
//continue:跳过本次循环

//eg1.
//int main()
//{
//    int i = 1;
//    do
//    {
//        printf("%d\n", i);//逻辑进入do打印一次然后+1符合while判断进入循环;
//        i++;
//    }
//    while (i <= 10);
//
//    return 0;
//}

//int main()
//{
//    int i = 1;
//    do
//    {
//        printf("%d\n", i);
//        break;//break打破循环跳出循环;
//        i++;
//    } 
//    while (i <= 10);
//    return 0;
//}

//练习:
//1.计算n的阶乘;
//大致思路先把1-n打印出来在相乘
int main()
{
    int n = 0;
    int i = 1; 
    int ret = 1;
    //输入
    scanf_s("%d", &n);
    while (i <= n)
    {
        ret = ret * i;
        i++;
        
    }
    printf("%d\n", ret);
    return 0;
}
 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

食懵你啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值