黑马程序员——C基础——流程控制

本文介绍了C语言中的流程控制概念,包括顺序结构、选择结构(if语句和switch语句)及循环结构(while循环、do while循环和for循环)。详细解析了各种结构的语法特点及使用场景。

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

C语言的流程控制分为三种,分别是顺序结构、选择结构和循环结构。

顺序结构就是按照语句的顺序执行的,这是最简单的流程控制,也是最基本的流程控制,也是程序的基础。

选择结构分为if语句和switch语句,循环结构分为while循环、do while循环和for循环三种。

我们先来学习if语句:

if语句是用来判断条件是否成立的,它有两种形式,第一种形式:

#include <stdio.h>

int main()
{
    int a = 3, b = 4, t;
    // if语句,用来判断条件是否成立,成立则执行if语句的主体,否则不执行
    if(a > b)
    {
        t = a;
        a = b;
        b = t;
    }
    printf("a = %d, b = %d\n", a, b);
    
    return 0;
}

这种形式仅有一个if语句。if后面的小括号内的的条件成立的话就执行if语句的主体,不成立的话就跳过。

if语句的第二种形式:

if(条件1)
    {
        语句1;
    }
    else if(条件2)
    {
        语句2;
    }
    else
    {
        语句3;
    }

第二种形式是对第一种形式的扩充,可以用来进行多个选择的判断,其中else if语句可以有多个。

下面学习的是switch语句。

switch语句的形式如下:

switch (数值)
    {
        case 数值1: 语句1; break;
        case 数值2: 语句2; break;
        ...
        case 数值n: 语句n; break;
        default: 语句n+1; break;
    }

switch后面的小括号内的数值就是用来判断主体内的哪个语句执行的,它与哪个case后面的数值相等就从哪里开始执行。如果它没有找到与它的值相等的case后面的数值,它就会执行default后面的语句。break则是用来跳出switch语句的主体的,如果没有break的话,它会从进入主体的的那个case语句开始按顺序一直执行。

下面就是流程控制的循环结构的学习。我们先来学习第一种,while循环。

我们先来写一个列子:

#include <stdio.h>

int main()
{
    int i = 5, j = 1;
    
    while (i > 0)
    {
        printf("第%d次循环\n", j);
        j++;
        i--;
    }
    
    return 0;
}

while循环是用来判断它后面的条件是否成立,成立的话就执行循环体,循环体执行完后接着再判断条件是否成立,成立的话就接着执行,一直执行到条件不成立才退出循环。上面的例子的输出结果是:

1次循环

2次循环

3次循环

4次循环

5次循环

可以看出循环体一共执行了五次。


第二种循环结构:do while循环

do while循环和while循环类似,不同的是while循环是先执行循环体再判断条件是否成立。do while的格式如下:

do
    {
        循环体;
    }while (条件);

先执行一次循环体后再判断条件是否成立,成立的话接着执行循环体,不成立的话退出循环体。


第三种循环结构:for循环

for循环的格式如下:

for (语句1;条件;语句2)
    {
        循环体
    }

它与while循环的不同之处就是while循环把引导循环发生的语句放在了循环体内,for循环则是把引导循环发生的语句放到了后面的判断语句内。

for循环的判断顺序是:先执行语句1,然后判断条件是否成立,成立的话执行循环体,接着执行语句2,然后判断条件,条件成立执行循环体,然后再执行语句2,等等。也就是说语句1只被执行一次,有时候语句1和语句2都可以省略(这时我们只是把它们放在了别的地方,而不是真正的省略)。

我们通过一个例子来学习for循环:

#include <stdio.h>

int main()
{
    for (int i = 0;i <= 5; i++)
    {
        printf("第%d次循环\n", i+1);
    }
}

根据上面讲述的for循环的知识,我们可以知道上面的代码中的循环体一共执行了6次。

最后我们再来说一下循环中break和continue的用法。

break顾名思义是用来打破某个东西的,那么在循环中它是打破什么的呢?它就是用来打破循环的,也就是跳出循环,我们可以在循环体中写上一个break用来终止循环。

continue是用来干什么的呢?continue就是用来跳过当前循环进入下一次循环的。它和break都是用来打破循环的,不过break是打破所有的循环,而continue是打破当前的循环的,这一点要注意。

以上就是简单的流程控制的介绍,流程控制在我们的程序开发中是非常常见的,这一块要好好学习。


总结:

1、流程控制分为三种,顺序结构、选择结构和循环结构。

2、选择结构有两种,一种是if,另一种是switch。

3、循环结构有三种,分别是while、do while和for循环。








### Linux编程基础知识概述 Linux编程涉及多个方面,包括但不限于文件操作、进程管理、网络通信以及系统调用等内容。以下是关于Linux编程的一些核心概念及其应用。 #### 1. 套接字编程 套接字(Socket)是一种用于实现不同计算机之间通信的技术。通过`bind()`函数可以将一个地址结构绑定到指定的socket上[^1]。 ```c #include <sys/socket.h> #include <netinet/in.h> int main() { int sockfd; struct sockaddr_in address; sockfd = socket(AF_INET, SOCK_STREAM, 0); address.sin_family = AF_INET; address.sin_port = htons(8888); // 设置端口号为8888 address.sin_addr.s_addr = htonl(INADDR_ANY); // 使用本地任意IP地址 if (bind(sockfd, (struct sockaddr *)&address, sizeof(address)) == -1) { perror("Bind failed"); return -1; } } ``` 上述代码展示了如何创建并绑定一个TCP类型的socket实例。其中`AF_INET`表示IPv4协议族,而`htons()`和`htonl()`分别用来转换主机字节序为主机网络字节序。 #### 2. 远程数据传输工具SCP 除了编写底层代码外,在实际开发过程中还需要掌握一些常用的命令行工具来辅助工作流程。例如使用`scp`命令可以在两台机器间安全地复制文件或目录[^2]: ```bash scp -r /local/path user@remote:/remote/path ``` 此命令会把本地路径下的所有内容递归上传至目标服务器上的指定位置。 #### 3. 环境变量PATH的作用 当我们在shell环境中执行某个可执行文件名作为命令时,操作系统并不会立即知道应该运行哪个具体的二进制文件;而是按照一定顺序查找可能匹配的结果——首先是检查环境变量`$PATH`列表中的各个目录是否存在同名程序;如果仍然未找到,则尝试在当前工作目录寻找是否有符合条件的目标文件[^3]。 --- ### 推荐的学习资源 对于希望深入理解Linux编程的同学来说,“黑马程序员”的相关教程确实是一个不错的选择。它通常覆盖了从入门级的知识点直到高级技巧的应用场景讲解,并且配有大量实战案例帮助巩固理论知识。 具体而言,《Linux C编程一站式学习》这类书籍能够提供详尽的操作指南和技术解析,非常适合初学者快速上手实践项目需求分析能力培养等方面打下坚实基础。 另外还可以关注官方文档或者参与开源社区活动等方式进一步提升个人技术水平!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值