C语言基础犄角旮旯的知识之分支与循环结构

简介: C语言基础犄角旮旯的知识之分支与循环结构

前言


我们都知道 程序 = 数据结构 + 算法,而学习数据结构前,一定要把数据类型啃透,负责就可能出现各种段错误或者溢出的错误。而对于初学者来说,学习数据类型的基本知识是容易的,但是有些底层知识与比较偏的知识,我认为也是需要掌握的。


目录


分支结构

switch语句

if语句

循环结构

goto语句

do while 与 while语句

for语句


正文


分支结构


switch语句


switch(a)        //a只能为整形:整数或字符。
{
    case 1:      //i只能为常量或确定的常量表达式,不能包括变量
    case 2:      //如果两个或多个case之间没有语句,就是多个case公用最后一个case的语句
    default :    //无论default的位置在哪,都是当所有case都为匹配上时,才执行。
                 //注意,如果default不在最后,而语句中也没有break;,那么也会接着执行下面的case                    
                 //语句
}


if语句


if(判断式)    

这个判断式里可以是任意合法的C语言表达式,当然,for语句,while语句中的判断式同理

总所周知,C语言里,用“非0”的值来表达“真”,用“0”来表达“假”。

那么问题来了,以下程序会输出什么呢

int a,b;    //为赋初值
if(a = b)   //注意这是赋值符号,不是等号
{
    printf("1");
}
else
{
    printf("2");
}


大家有答案了吗,答案是不确定,有可能是输出1,也有可能是输出2


那究竟是什么时候输出1,什么时候输出2呢


(a = b)我们判断输出什么,主要是这个判断式是值是为0,还是非0。b赋值给a,主要就是看b的值,如果b值为0,则判断式为假,输出2;如果b值为1,则判断式为真,输出1。而a,b未赋值,并不是没有值,系统会随机给a,b赋值,所以答案不确定。


循环结构


goto语句


goto语句:让CPU去指定的地方执行; 无条件跳转语句。

 

   语法:

       goto 行标识(语句标识)

       “行标识”: 用来标识一行的地址

       行标识一般写在一行的最前面,当然,行标识允许前面有空白符(eq:空白、tab..)

       行标识也属于标志符。


注意:乱用goto语句,会使程序的可读性变差。一般不建议使用goto 语句,为了使代码更加清晰,可读性强。


do while 与 while语句


当do while 与 while语句的判断条件相同时,do while 语句会比 while 多执行一次,相当于do while 语句是先执行后判断,而 while 语句是前判断后执行。


for语句


for(表达式1;表达式2;表达式3)
{
    ......
}


以上程序相当于以下程序


for(表达式1;表达式2;)
{
    ......
    表达式 3;
}

意思是,for循环语句,最后一句一定是表达式3,执行完这句后,才会进行表达式2的判断。表达式3的执行不受for循环里面的语句的影响,如以下程序


for(表达式1;表达式2;)
{
    ......
    continue;
    表达式 3;
}

即使中间有个continue语句,提前结束了本次循环,在本次循环最后也要执行表达式3,因此我们可以利用表达式3的这种特性,写出许多精简漂亮的程序代码。

相关文章
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
325 5
|
5月前
|
C语言
C语言分支和循环语句
分支语句由`if-else`构成,用于根据不同条件执行相应代码。`else`会与最近未配对的`if`结合,多个条件可用`else if`实现。若连续使用`if`,各条件互不影响。嵌套结构可在`if`中再加入`if-else`。此外,`switch`语句适用于多分支选择(注意表达式不能为浮点数,`case`后需加`break`)。循环语句包括`for`、`while`和`do...while`,注意`do...while`末尾需加分号。循环中,`break`直接终止循环,`continue`跳过当前循环剩余部分,但`for`的语句三仍会执行,而`while`中位置影响效果。
110 0
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
192 8
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
243 1
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
102 0
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)
215 0
|
C语言
C语言及程序设计初步例程-23 用if语句实现分支结构
贺老师教学链接  C语言及程序设计初步 本课讲解 下面的程序是什么结构? #include <stdio.h> int main( ) { int a,b,c; scanf("%d %d", &a, &b); if(a>b) { c=a; } else { c=b;
1126 0
|
2月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
935 0
|
4月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
311 15