C语言-分支和循环1 原创

扛水泥的小江
发布于 2023-9-23 20:33
浏览
0收藏

C语言是一门结构化的程序设计语言

  • 顺序结构
  • 选择结构
  • 循环结构
int main()
{
   int a = 0; //由一个分号;隔开的就是一条语句
   return 0;
}
  1. 分支语句(选择结构)
    如果你好好学习,拿到一个好offer,成为有钱的小姨。
    如果你不好好学习,毕业就嫁人,一年抱俩,老公和小三跑了。

  2. 单分支语句(if语句)

int main()
{
   int age = 21;
   if (age > 18)
      printf("你成年啦\n");
   return 0;
}
  1. 多分支语句
if (条件)
   printf();
else
   printf();

int main()
{
    int age = 21;
    if (age < 18)
        printf("你还未成年\n");
    else
        printf("你已成年\n");
    return 0;
}

int age = 21 定义一个变量21,if (age < 18) 如果你的年龄小于18岁的话,printf(“你还未成年\n”);则输出你还未成年,else 否则,printf(“你已成年\n”);则输出你已成年。
(1)可嵌套

int main()
{
    int age = 21;
    if (age > 18)
        printf("未成年\n");
    else
    {
        if (age >= 18 && age <= 23)
            print("青年\n");
        else if (age >= 23 && age < 50)
            printf("壮年\n");
        else
            printf("老年\n");
    }
    return 0;
}

在循环语句里再嵌套一个循环语句,套中套。先判断你是成年了,如果成年了则会进入下一个循环。

int main()
{
    return 0;
} //一对{ }就是一个代码块。

如果表达式的结果为真,则语句执行。0表示假,非0表示真。
4. 悬空else
咱们代码的格式得写漂亮点,看的时候才不会乱,像我这种鱼的记忆的人过后就忘记我写的是什么了哈哈。

int main()
{
    int a = 0;
    int b = 2;
    if ( a == 1)
        if (b == 2)
            printf("小姨\n");
        else
            printf("姐姐\n");
    return 0;
}

千万千万不要写成下面这个样子!

     if (a == 1)
        if (b == 2)
            printf("小姨\n");
     else //遵循就近原则
        printf("姐姐\n");

精致的小姨们!NO!绝对NO!这个else是与if (b == 2)相匹配的,她是遵循就近原则。那肯定会有人问,那如果我想把else与if (a == 1)相匹配怎么办呢?那就给她加个外套!{ }

    if (a == 1)
    {
        if (b == 2)
            printf("小姨\n");
    }
     else //遵循就近原则
        printf("姐姐\n");

没有错,就是这样!

5.if的书写形式

int main()
{
    int age = 21;
    if (21 == age) //=赋值,==判断相等
        printf("欢迎美丽的小姨回家\n");
    return 0;
}

6.练习-判断一个数是否为奇数,输出1-100之间的奇数

int main()
{
    int i = 1;
    while (i <= 100)
    {
        if (i % 2 != 0)
            printf("%d ", i);
        i++; //先用i的初始值做循环变量再i+1
    }
    return 0;
}

用while循环去判断i是不是小于或等于100,如果小于或等于100,则进入下一个判断,if判断i被2整除会不会等于0,如果不等于0则是奇数,则将i输出。
while(i++)是先用i的初始值做循环变量再i+1。我们最开始的int i = 1;经过 i++;后,int i = 2; 相当于一个数循环一圈后再叠加一个数。

7.switch语句

int main()
{
    int day = 0;
    scanf("%d", &day); //输入
    switch (day) //int
    {
    case 1: //int 常量表达式
        printf("星期一\n");
        break; //终止
    case 2: 
        printf("星期二\n");
        break;
    case 3: 
        printf("星期三\n");
        break;
    case 4: 
        printf("星期四\n");
        break;
    case 5: 
        printf("星期五\n");
        break;
    case 6: 
        printf("星期六\n");
        break;
    case 7: 
        printf("星期日\n");
        break;
    }
    return 0;
}

day必须是int类型,case 1 中的 1 必须是int类型,也可以是常量表达式。
也可以写成如下的格式,按个人所需。

int main()
{
    int day = 0;
    scanf("%d", %day);
    switch (day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("工作日\n");
        break;
    case 6:
    case 7:
        printf("周末\n");
        break;
    }
    return 0;
}

如果不想忽略不匹配所有标签的表达式的值时,可以在语句列表中增加一条default子句,可以写在任何一个case标签出现的位置。

    case 7:
       printf("周末\n");
        break;
    default: //如果不想忽略不匹配所有标签的表达式的值
        printf("输入错误\n");
            break;
    }
    return 0;

循环语句

  • while
  • for
  • do while
    1.while循环
    什么是while循环呢?和if语句又有什么差别呢?
    当满足条件的情况下,if语句后的语句执行,否则不执行。但这个语句只会执行一次。but我们发现生活中有很多实际的例子是:同一件事情我们需要完成很多次,那我们怎么做呢?C语言中给我们引入了:while语句,可以实现循环。
while(表达式)
    循环语句;

打印1-10的数字

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

如果我不想她打印到10呢?我就想她打印到5咋怎?没有错,加个break;

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

break永久终止循环!渣男敢找小三,那就离婚!让你永远失去我!!!可是单单离婚岂不是太便宜他了!该咋怎呢?那就派出我们的continue;

int main()
{
    int a = 1;
    while (a <= 10) //判断要不要执行循环体
    {
        if (a == 5)
            continue;
        printf("%d ", i);
        i++;
    }
    return 0;
}

终止循环中本次循环中continue后面的代码,然后直接跳到while (a <= 10)语句的判断部分,进行下一次循环的入口判断。没有错!我才不会和break一样选择离婚呢,我自己也去重新找一个!拿着你的薪水去快乐!!!!

getchar() //接收字符的代码
putchar() //输出函数

有什么作用呢?小小举例一下

int main()
{
    int ch = 0;
    int ret = 0; //定义一个变量,来接收getchar的返回值
    char password[20] = {0};
    printf("输入密码:>");
    scanf("%s", password);  //%s输入一个字符串,输入密码,并存放在password数组中
    while ((ch = getchar()) != '\n')
    {
        ;  //空语句,在循环变量里面不断的读取
    }
    printf("请确认(Y/N):>");
    ret = getchar(); ///读取字符,让ret接收
    if (ret == 'Y')
    {
        printf("确认成功\n");
    }
    else
    {
        printf("放弃确认\n");
    }
    return 0;
}

因为我们输入完密码后得按回车键\n,所以当gatchar读取完后,缓冲区还剩下一个\n,所以我们用while ((ch = getchar()) != ‘\n’)来读取\n。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2023-9-25 12:15:08修改
1
收藏
回复
举报
回复
    相关推荐