【C语言航路】第二站:分支与循环(一)

简介: 【C语言航路】第二站:分支与循环(一)

一、什么是语句?

c语言语句可分为以下五类

1.表达式语句

2.函数调用语句

3.控制语句

4.复合语句

5.空语句

本站着重介绍控制语句。

控制语句用于控制程序的流程,以实现程序的各种结构方式,c语言是一门结构化的程序设计语言,我们c语言有三种结构,顺序结构,选择结构,循环结构。他们由特定的语句定义符组成,c语言有九种控制语句。

可分为:

1.条件判断语句(分支语句):if语句,switch语句

2.循环执行语句:do while语句,while语句,for语句

3.转向语句:break语句,goto语句,continue语句,return语句

二、分支语句(选择语句)

1.  if语句

(1)if语句的三种形式

if(表达式)

       语句1;  //单分支

if(表达式)

       语句1;

else

       语句2;  //双分支

if(表达式1)

       语句1;

else if(表示式2)

       语句2;

else

       语句3;     //多分支

上面这是if语句常见的三种形式。

#include<stdio.h>
  int main()
{
    int age = 0;
    scanf("%d", &age);//20
    //单分支举例
    if (age >= 18)
        printf("成年\n");
    //双分支举例
    if (age >= 18)
        printf("成年\n");
    else
        printf("未成年\n");
    //多分支举例
    if (age < 16)
        printf("少年\n");
    else if (age >= 16 && age < 30)
        printf("青年\n");
    else if (age >= 30 && age < 40)
        printf("中年\n");
    else if (age >= 40 && age < 56)
        printf("壮年\n");
    else if (age >= 56 && age < 80)
        printf("老年\n");
    else
        printf("老寿星\n");
    return 0;
}

如上所示代码中,包含了if的三种形式。

if语句如果需要包含多条代码,则需要加上代码块,

#include<stdio.h>
int main()
{
    int age = 20;
    if (age >= 18)
    {
    printf("成年\n");
    printf("谈恋爱\n");
    }
    return 0;
}

(2)几个经典的错误标准的零分

①下面这段代码未加大括号,if语句无法控制第二个printf,虽然从结果方面来说是对的,但是你们知道我想表达什么意思就可以了。

#include<stdio.h>
int main()
{
    int age = 20;
    if (age >= 18)
        printf("成年\n");
        printf("谈恋爱\n");
    return 0;
}

②下面这段代码输出的结果什么呢?

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
        else
            printf("haha\n");
    return 0;
}

答案是haha,这就是未加大括号导致的悲剧了。上面这段代码可以加上大括号,就会等价于下面这段代码,这样你就能看得更加清晰了。不会出现错误来了,这也给我们提示了一点,写代码时候一定要注意缩进,要不然自己写的自己都不知道在说啥。

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
    {
        if (b == 2)
             printf("hehe\n");
    }    
    else
    {
        printf("haha\n");
    }
    return 0;
}

③if括号语句中==写成了=

int main()
{
    int num = 5;
    if (num=10)
    {
        printf("hehe\n");
    }
    return 0;
}

(3)一个重要的结论

else是与距离它最近的if匹配的

2、switch

(1)switch语句基本用法

switch语句我们直接看一段代码来进行讲解

int main()
{
    int day = 0;
    scanf("%d", &day);
    int n = 2;
    switch (day)
    {
    default:
        printf("选择错误\n");
        break;
    case 1:
        printf("星期1\n");
        break;
    case 2:
        printf("星期2\n");
        break;
    case 3:
        printf("星期3\n");
        break;
    case 4:
        printf("星期4\n");
        break;
    case 5:
        printf("星期5\n");
        break;
    case 6:
        printf("星期6\n");
        break;
    case 7:
        printf("星期天\n");
        break;
    }
    return 0;
}

我们switch后面的括号会读取一个整形表达式的值,然后自动跳转到对应的case语句后面,并执行case语句的结果,值得注意的是,要注意break这条语句,这个语句的作用是跳出本层switch语句。因为switch是可以嵌套的,或者跟循环语句嵌套使用。default的意思是,除过case上的所有值之外,其余一切switch所接收的值,都将跳转到default中。

(2)几个经典的错误,标准的零分

①需要添加break时未加break,如果未加break,那么执行完本次case以后,不会直接结束switch,而是继续往下滑,进入下面的case语句中。

②switch语句和case语句中只能是整型表达式,否则报错。比如浮点类型等,但值得注意的是,字符类型和整型类型从某种程度上,也就是ASCII表,来说可以对应起来,也就是之前所说的,表现形式不同而已。


总结

本小节主要讲了if与switch语句中基本的用法,难度不大。但细节很多。

本站未完,欲知后事,请看下节

相关文章
|
5天前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
13天前
|
C语言
c语言循环题目
c语言循环题目
|
14天前
|
C语言
C语言控制流程详解:分支与循环语句
C语言控制流程详解:分支与循环语句
11 0
|
18天前
|
算法 C语言 索引
C语言中的for循环:深入探索与实用技巧
C语言中的for循环:深入探索与实用技巧
15 1
|
19天前
|
C语言
C语言中如何避免循环死循环
C语言中如何避免循环死循环
14 1
|
19天前
|
C语言
c语言循环设计程序结构
c语言循环设计程序结构
17 0
|
21天前
|
存储 C语言
C语言for循环详解
C语言for循环详解
|
21天前
|
C语言
C语言中的循环控制结构与循环语句详解
C语言中的循环控制结构与循环语句详解
19 0
|
IDE 定位技术 开发工具
C语言 第四章 关系、逻辑运算与分支流程控制
一、关系运算 若干表达式用关系运算符连接而成,就构成关系表达式。 关系表达式中,表达式成立,其值为1(真);表达式不成立,其值为0(假)。其他表达式中,其结果如果是非0则为真,结果为0则为假。 关系运算符的优先级低于算术运算符,高于赋值运算符。
1018 0
|
6天前
|
算法 Unix Linux
C语言随机数的产生(rand、srand、time函数细节讲解)
C语言随机数的产生(rand、srand、time函数细节讲解)