C语言基础:分支语句与循环语句(语法篇)

目录

一、语句

二、分支语句

if语句

语法结构:

if书写形式的对比

练习

switch语句

语法结构:

语句项: 

switch语句中的break

小贴士:

default子句:

小贴士:

三、循环语句

while循环

语法结构:

执行流程:

举例:使用while循环打印1-10的数字

 while语句中的break和continue:

for 循环

语法结构:

执行流程:

 for循环与while循环的比较:

for循环中的break与continue

小贴士:

do...while()循环

语法结构:

执行流程

四、goto语句


一、语句

C语言中,由一个分号隔开的就是一条语句。比如:

printf("hehe\n");

1+3;

二、分支语句

分支语句是一个选择结构,比如中考过后,一部分学生去了技校,成为了一名手艺人发家致富,另一部分学生上了高中,读了大学成为一名学者,为科研事业做贡献,这就是选择。

if语句

如果表达式为真,则语句执行。C语言中,0表示假,非0表示真。

语法结构

单语句执行

1)if(表达式)

        语句;

2)if(表达式)

        语句1;

      else

        语句2;

3)if(表达式)

        语句1;

      else if(表达式)

        语句2;

      else

        语句3;

多语句执行

 执行多条语句时,应该使用代码块,下方示例中一对{}就是一个代码块

#include<stdio.h>

int main()

{

        if(表达式)

       {

                语句列表1;

        }

        else

        {

                语句列表2;

        }

        return 0;

}

if书写形式的对比

//形式1

if (condition)
{
    return x;
}
return y;

//形式2

if (condition)
{
    return x;
}
else
{
    return y;
}

两个相同结果的代码,形式二更容易理解逻辑更加清楚,也不容易出错。

练习

详情见博主的C语言基础:分支语句与循环语句(练习篇)

1.判断一个数是否为奇数

2.输出1-100之间的奇数

switch语句

switch语句也是一种分支语句,常常用于多分支的情况。

比如:  

        输入1 ,输出星期一
        输入2 ,输出星期二
        输入3 ,输出星期三
        输入4 ,输出星期四
        输入5 ,输出星期五
        输入6 ,输出星期六
        输入7 ,输出星期七
使用if...else if...else if ...的形式太复杂,所以有了switch语句。

语法结构:

        
switch(整形表达式)
{
           语句项:
}

语句项: 

        语句项是一些case语句。如下:
        case 整形常量表达式:
                语句;
       

switch语句中的break

switch语句中,无法直接实现分支,需要搭配break实现真正的分支。

以上方输出星期几为例:break把语句列表划分成不同的分支。

                        

小贴士:

        记得在最后一个case语句后面加上一条break语句。

default子句:

表达的值与所有的 case 标签的值都不匹配时, 所有 语句都被跳过。 但是程序并不会终止,也不会报错,这种情况在C 中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时,你可以在语句列表中增加一条default子句。可以 写在 任何一个 case 标签可以出现的位置。当 switch 表达式的值并不匹配所有 case 标签的值时,default子句后边的语句就会执行。
因此,每个switch语句只能出现一条default子句,但它可以出现在任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句。

小贴士:

        养成良好的习惯,在每个switch语句中都放一条default语句,甚至可以在后边加上一个break。

三、循环语句

下图就是一个简单的循环:

while循环

语法结构:

while(条件表达式)

        循环语句:

执行流程:

        

举例:使用while循环打印1-10的数字

 while语句中的break和continue:

break:循环中只要遇到break,就会直接终止循环。所以while中的break就是用于永久终止循环的。

continue:continue时用于终止本次循环,本次循环continue后的代码不会执行,直接跳转到while语句的判断部分,进行下一次循环的入口判断。

for 循环

语法结构:

for (表达式1; 表达式2; 表达式3)

        循环语句;

表达式1为初始化部分,用于初始化循环变量;表达式2为条件判断部分,用于判断循环时候终止;表达式3为调整部分,用于循环条件的调整。

举例:使用for循环打印1-10的数字

i = 1为初始化部分, i<=10为判断部分 ,i++ 为调整部分

执行流程:

 for循环与while循环的比较:

不难看出,while循环仍然包括循环的三个必须条件,但偏离较远,查找修改不如for循环集中和方便,因此for循环使用的频率较高。 

for循环中的break与continue

for 循环中的break和continue与while循环中的break和continue的意义是相同的,但是for循环中的continue会跳过后面的代码,进入调整部分,不容易造成死循环。

小贴士:

1.不要再for循环体内修改循环变量,如果修改,可能造成for循环失去控制的后果。

2.循环控制变量尽量采用前闭后开区间的写法。

3.for循环中的初始化部分,判断部分,调整部分可以省略。(初学者慎用,容易出问题)

do...while()循环

语法结构:

do

        循环语句;

while(表达式);

执行流程

do...while()循环至少执行一次,但由于使用的场合有限,所以不常用。 

四、goto语句

goto语句最常用的地方就是终止程序再某些深度嵌套的结构的处理过程,比如,一次跳出多层循环。 这里说一下:break只能从最内层循环退出到上一层的循环,无法直接跳出多层循环。但其实无论是从理论和实践中,没有goto语句都可以很容易写出代码。

goto语句真正适用的场景:

for(...)
    for (...)
    {
        for (...)
        {
            if (disaster)
            goto error;
        }
    }
    ...
error:
    if(disaster)
        //处理错误情况

语法知识到这里就结束了,相关的一些简单的小程序比如求n的阶乘,猜数字等,会在之后更新 “C语言基础:分支语句与循环语句(练习篇)”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值