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的这种特性,写出许多精简漂亮的程序代码。

相关文章
|
2月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
78 5
|
2月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
33 8
|
2月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
19 0
|
3月前
|
C语言
C语言程序设计核心详解 第四章&&第五章 选择结构程序设计&&循环结构程序设计
本章节介绍了C语言中的选择结构,包括关系表达式、逻辑表达式及其运算符的优先级,并通过示例详细解释了 `if` 语句的不同形式和 `switch` 语句的使用方法。此外,还概述了循环结构,包括 `while`、`do-while` 和 `for` 循环,并解释了 `break` 和 `continue` 控制语句的功能。最后,提供了两道例题以加深理解。
104 7
|
2月前
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)
|
4月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
60 2
|
IDE 开发工具 C语言
C语言 第五章 循环结构练习
一、计算15+16+17 …98+99的和 for实现 #include "stdio.h" void main() { //15+16+17 …98+99 int i,s=0; for(i=15;i='a'&&str[i]='A'&&str[i]='0'&&...
1134 0
|
18天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10