C · 初阶 分支语句(选择结构),大厂内部资料

32 阅读4分钟

img img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


目录


前言

C语句可分为以下五类:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句
    • 本文介绍的是控制语句
    • 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句
      可分成以下三类:
  6. 条件判断语句也叫分支语句:if语句、switch语句
  7. 循环执行语句:do while语句、while语句、for语句
  8. 转向语句:break语句、goto语句、continue语句、return语句

一、if语句

  • 那if语句的语法结构是怎么样的呢?
if(表达式)
    语句;

if(表达式)
    语句1;
else
    语句2;

//多分支 
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

具体演示:

#include <stdio.h>
//代码1
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
}

//代码2
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
    else
   {
        printf("成年\n");
   }
}

//代码3
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   { 
   		printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }    
}

  • 解释一下:
    • 如果表达式的结果为真,则语句执行
    • C语言中如何表示真假?
      0表示假,非0表示真
  • 如果条件成立,要执行多条语句,怎应该使用代码块:
#include <stdio.h>
int main()
{
    if(表达式)
   {
        语句列表1;
   }
    else
   {
        语句列表2;
   }
    return 0; 
}

这里的一对{ } 就是一个代码块

二、悬空else

  • 当你写了这个代码:
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
        if(b == 2)
            printf("111111\n");
    else
        printf("222222\n");
    return 0; 
}

  • 改正:
//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
   {
        if(b == 2)
       {
            printf("111111\n");
       }
   }
    else
   {
         printf("222222\n");
   }       
    return 0; 
}

else的匹配:else是和它离的最近的if匹配的

三、if书写形式的对比

//代码1
if (condition) {
    return x; 
}
return y;

//代码2
if(condition) 
{
    return x; 
}
else
{    
	return y; 
}

//代码3
int num = 1;
if(num == 5) 
{
    printf("111111\n");
}

//代码4
int num = 1;
if(5 == num) 
{
    printf("111111\n");
}

  • 代码2和代码4更好,逻辑更加清晰,不容易出错

四、switch语句

  • switch语句也是一种分支语句。
    常常用于多分支的情况。
    比如:
    输入1,输出星期一
    输入2,输出星期二
    输入3,输出星期三
    输入4,输出星期四
    输入5,输出星期五
    输入6,输出星期六
    输入7,输出星期日
  • 如果我们写成 if...else if ...else if 的形式就太复杂了,那我们就得有不一样的语法形式
  • 这就是switch 语句
switch(整型表达式) 
{
    语句项;
}



![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ca63ec995c0a4147ae7b00d52ffc9418~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771920258&x-signature=9nG26k4ofI4izJ98IKE3Uw28KxY%3D)
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5c34f41f7989455c9881fd2e256666a7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771920258&x-signature=o4NYHUW6hakp%2BwZ9uxJjZ7%2BJSH8%3D)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://gitee.com/vip204888)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**