C语言基本结构:顺序、选择和循环

news2024/11/25 22:50:23

文章目录

  • 前言
  • 顺序结构
    • 代码讲解
  • 选择结构
    • 代码讲解
  • 循环结构
  • 总结

前言

在计算机编程中,掌握基本的编程结构是非常重要的。C语言作为一种广泛应用的编程语言,具有丰富的基本结构,包括顺序结构、选择结构和循环结构。这些基本结构为开发人员提供了强大的工具,可以编写出高效、灵活的程序。

顺序结构

在这里插入图片描述

顺序结构是程序按照代码书写的顺序依次执行的结构。当程序运行时,它会按照代码的顺序逐行执行每一条语句,没有跳转或分支。顺序结构适用于需要按照特定顺序依次执行的任务。

在顺序结构中,每个语句都会按照从上到下的顺序执行。
例如,以下示例展示了一个简单的顺序结构:

#include <stdio.h>

int main() {
    int num1 = 10;
    int num2 = 20;
    int sum = num1 + num2;

    printf("The sum is: %d\n", sum);

    return 0;
}

在上述示例中,代码会依次执行赋值语句和打印语句,没有任何条件或循环。

代码讲解

这段代码是一个简单的 C 语言程序,用于计算两个整数的和并输出结果。

#include <stdio.h>

这是一个预处理指令,用于引入标准输入输出库(stdio.h),以便使用其中定义的函数。

int main() {

这是程序的入口点,即 main 函数。所有的 C 语言程序都从 main 函数开始执行。

    int num1 = 10;
    int num2 = 20;

这两行代码声明并初始化了两个整型变量 num1 和 num2,分别赋值为 10 和 20。

    int sum = num1 + num2;

这行代码计算了 num1 和 num2 的和,并将结果赋值给变量 sum。

    printf("The sum is: %d\n", sum);

这行代码使用 printf 函数将计算结果输出到标准输出。%d 是格式控制符,用于输出整数类型的数据。“\n” 表示换行。

    return 0;
}

这是 main 函数的最后一行,用于结束程序并返回一个整数值(通常为0),表示程序正常退出。

整个程序的逻辑很简单:首先声明并初始化两个整型变量,然后计算它们的和,并将结果输出到屏幕上。最后程序退出。

选择结构

在这里插入图片描述

选择结构根据条件决定程序的执行路径。C语言中的选择结构主要有 if 语句和 switch 语句。

  • if 语句:if 语句根据给定的条件判断条件是否为真,并执行相应的代码块。
#include <stdio.h>

int main() {
    int num = 5;

    if (num > 0) {
        printf("The number is positive.\n");
    } else {
        printf("The number is zero or negative.\n");
    }

    return 0;
}

在上述示例中,如果条件 num > 0 为真,则执行第一个代码块。否则,执行 else 后的代码块。

代码讲解

这段代码用于判断一个整数是否为正数,并输出相应的结果。

#include <stdio.h>

同样是引入标准输入输出库(stdio.h)。

int main() {

这是程序的入口点,即 main 函数。

    int num = 5;

这行代码声明并初始化了一个整型变量 num,并将其赋值为 5。

    if (num > 0) {
        printf("The number is positive.\n");
    } else {
        printf("The number is zero or negative.\n");
    }

这是一个条件语句,用于判断 num 的值是否大于 0。如果条件成立(即 num 大于 0),则执行 if 后的代码块;否则(即 num 等于或小于 0),执行 else 后的代码块。

如果 num 大于 0,则输出 “The number is positive.”;否则输出 “The number is zero or negative.”。“\n” 表示换行。

    return 0;
}

这是 main 函数的最后一行,用于结束程序并返回一个整数值(通常为 0),表示程序正常退出。

整个程序的逻辑很简单:首先声明并初始化一个整型变量 num,然后判断 num 的值是否大于 0,并分别输出不同的结果。最后程序退出。在这个示例中,由于 num 的值为 5,属于正数,因此会输出 “The number is positive.”。

  • switch 语句:switch 语句根据表达式的值选择不同的执行路径。
#include <stdio.h>

int main() {
    int choice = 2;

    switch (choice) {
        case 1:
            printf("You selected option 1.\n");
            break;
        case 2:
            printf("You selected option 2.\n");
            break;
        case 3:
            printf("You selected option 3.\n");
            break;
        default:
            printf("Invalid choice.\n");
            break;
    }

    return 0;
}

示例中,根据变量 choice 的值,将选择不同的执行路径。如果 choice 的值为1,则执行第一个代码块;如果 choice 的值为2,则执行第二个代码块;如果 choice 的值为3,则执行第三个代码块;否则,执行 default 后的代码块。

循环结构

在这里插入图片描述

循环结构用于重复执行一段代码,直到满足某个条件才停止执行。C语言提供了三种常见的循环结构:while 循环、do-while 循环和 for 循环。

  • while 循环:先测试条件,然后根据条件的真假决定是否执行循环体内的代码。
#include <stdio.h>

int main() {
    int count = 1;

    while (count <= 5) {
        printf("Count: %d\n", count);
        count++;
    }

    return 0;
}

示例中,循环会持续执行循环体内的代码,直到 count 的值大于5。

  • do-while 循环:先执行一次循环体内的代码,然后再测试条件。如果条件为真,将继续执行循环体内的代码。
#include <stdio.h>

int main() {
    int count = 1;

    do {
        printf("Count: %d\n", count);
        count++;
    } while (count <= 5);

    return 0;
}

示例中,循环至少会执行一次循环体内的代码,然后根据条件判断是否继续执行。

  • for 循环:通过设置初始条件、循环条件和每次循环后的更新操作,来控制循环的执行次数。
#include <stdio.h>

int main() {
    for (int i = 1; i <= 5; i++) {
        printf("Count: %d\n", i);
    }

    return 0;
}

示例中,循环会重复执行循环体内的代码,共执行5次循环。

这些就是C语言中三种基本结构的详细介绍。通过合理运用这些结构,可以构建出各种复杂的程序逻辑和算法。

总结

C语言中的基本结构包括顺序、选择和循环。顺序结构按照代码顺序执行,选择结构根据条件判断执行路径,循环结构用于重复执行代码块。这些结构为开发人员提供了丰富的工具,帮助构建灵活而高效的程序。掌握基本结构是学习C语言编程的基础,也是进一步深入学习和开发复杂程序的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/785075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ主从集群broker无法启动,日志报错

使用vmWare安装的centOS7.9虚拟机&#xff0c;RocketMQ5.1.3 在rocketMQ的bin目录里使用相对路径的方式启动broker&#xff0c;jps查询显示没有启动&#xff0c;日志报错如下 排查配置文件没有问题&#xff0c;nameServer也已经正常启动 更换绝对路径&#xff0c;启动broker&…

flutter:animate_do(flutter中的Animate.css)

简介 做过web开发的应该大部分人都知道Animate.css&#xff0c;它为开发者提供了一系列预定义的动画效果&#xff0c;可以通过简单的CSS类来实现各种动画效果。而animate_do 相当于flutter中的Animate.css,它提供了很多定义好的动画效果 基本使用 官方地址 https://pub-web.…

一文学会redis在springBoot中的使用

“收藏从未停止&#xff0c;练习从未开始”&#xff0c;或许有那么一些好题好方法&#xff0c;在被你选中收藏后却遗忘在收藏夹里积起了灰&#xff1f;今天请务必打开你沉甸甸的收藏重新回顾&#xff0c;分享一下那些曾让你拍案叫绝的好东西吧&#xff01; 一、什么是redis缓存…

【深度学习】【三维重建】windows10环境配置PyTorch3d详细教程

【深度学习】【三维重建】windows10环境配置PyTorch3d详细教程 文章目录 【深度学习】【三维重建】windows10环境配置PyTorch3d详细教程Anaconda31.安装Anaconda32.卸载Anaconda33.修改Anaconda3安装虚拟环境的默认位置 安装PyTorch3d确定版本对应关系源码编译安装Pytorch3d 总…

Day 65: 集成学习之 AdaBoosting (3. 集成器)

代码&#xff1a; package dl;import java.io.FileReader; import weka.core.Instance; import weka.core.Instances;/*** The booster which ensembles base classifiers.*/ public class Booster {/*** Classifiers.*/SimpleClassifier[] classifiers;/*** Number of classi…

解决报错:Can‘t connect to HTTPS URL because the SSL module is not available.

本人今天准备打开安装一个label-studio包&#xff0c;试了很多次&#xff0c;接连报如下错误&#xff0c;因此我就去找了一些解决方案&#xff0c;现在总结如下&#xff1a; 1、报错信息如下 2、解决方案如下&#xff1a; github上有对应的解决方案&#xff0c;链接&#xff…

教师ChatGPT的23种用法

火爆全网的ChatGPT&#xff0c;作为教师应该如何正确使用&#xff1f;本文梳理了教师ChatGPT的23种用法&#xff0c;一起来看看吧&#xff01; 1、回答问题 ChatGPT可用于实时回答问题&#xff0c;使其成为需要快速获取信息的学生的有用工具。 从这个意义上说&#xff0c;Cha…

安卓开发后台应用周期循环获取位置信息上报服务器

问题背景 最近有需求&#xff0c;在APP启动后&#xff0c;退到后台&#xff0c;还要能实现周期获取位置信息上报服务器&#xff0c;研究了一下实现方案。 问题分析 一、APP退到后台后网络请求实现 APP退到后台后&#xff0c;实现周期循环发送网络请求。目前尝试了两种方案是…

Sui Builder House巴黎站精彩集锦

Sui Builder House巴黎站于7月19日圆满结束&#xff0c;Mysten Labs联合创始人兼CTO的Sam Blackshear在活动上发表了主题演讲。两天的Builder House活动还邀请了Mysten Labs的其他杰出成员分享Sui的发展情况和近期进展&#xff0c;社区成员展示了自己项目并提供见解&#xff0c…

C++继承体系中,基类析构函数请加上virtual,设置为虚函数

为什么建议在存在继承体系时刻我们的类的析构函数加上virtual呢&#xff1f; 大家看段代码。 咋一看&#xff0c;没什么毛病这段代码&#xff0c;让我们画图理解下。 紫框中的前4个字节指向new开辟的空间。 我们知道&#xff0c;当基类A指针指向基类B时候会发生切片 当我们del…

小程序如何修改商品

​商家可能会遇到需要修改产品信息的情况。无论是价格调整、库存更新还是商品描述的修改&#xff0c;小程序提供了简便的方式来帮助你们完成这些操作。下面是一些简单的步骤和注意事项&#xff0c;帮助你们顺利地修改商品。 一、进入商品管理页面 在个人中心点击管理入口&…

工厂电力监控解决方案

1、概述 电力监控系统实现对变压器、柴油发电机、断路器以及其它重要设备进行监视、测量、记录、报警等功能&#xff0c;并与保护设备和远方控制中心及其他设备通信&#xff0c;实时掌握供电系统运行状况和可能存在的隐患&#xff0c;快速排除故障&#xff0c;提高工厂供电可靠…

2023年Q2京东环境电器市场数据分析(京东数据产品)

今年Q2&#xff0c;环境电器市场中不少类目表现亮眼&#xff0c;尤其是以净水器、空气净化器、除湿机等为代表的环境健康电器。此外&#xff0c;像冷风扇这类具有强季节性特征的电器也呈现出比较好的增长态势。 接下来&#xff0c;结合具体数据我们一起来分析Q2环境电器市场中…

承接箱体透明拼接屏项目时,需要注意哪些事项?

承接箱体透明拼接屏项目时&#xff0c;需要注意以下事项&#xff1a; 确定需求&#xff1a;在承接箱体透明拼接屏项目之前&#xff0c;需要明确客户的需求&#xff0c;包括屏幕的大小、分辨率、亮度、色彩等参数&#xff0c;以及使用的环境、观看距离和观看角度等。 材料选择&…

图文教程:如何在 3DS Max 中创建3D迷你卡通房屋

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 在本教程中&#xff0c;我们将学习如何创建一个有趣的、低多边形的迷你动画房子&#xff0c;你可以在自己的插图或视频游戏项目中使用它。您将学习的一些技能将包括创建基本的3D形状和基本的建模技术。让我…

最简单的固定表格列实现

ref: https://dev.to/nicolaserny/table-with-a-fixed-first-column-2c5b 假设我们现在有这样一个表格 <table><thead><tr><th>姓名</th><th>性别</th><th>民族</th><th>年龄</th><th>籍贯</th>…

好用的敏捷开发项目管理工具有哪些?这3款真的绝绝子!

随着数字化的转型和企业团队成员不断追求高效的工作效率&#xff0c;越来越多优质的敏捷开发项目管理工具&#xff0c;深受广大管理者的青睐。今天我将通过这篇文章为大家介绍3款非常好用的开发项目管理工具&#xff0c;建议收藏起来&#xff01; ​ 1.boardmix boardmix博思…

Jmeter 中 Beanshell 的使用

目录 前言&#xff1a; Beanshell 介绍 常用内置变量 log vars 和 props vars 常用方法&#xff1a; props 常用方法&#xff1a; prev 综合运用 前言&#xff1a; JMeter 是一个广泛使用的性能测试工具&#xff0c;它支持许多不同的测试技术和方法。其中&#xff0c…

浏览器协议TCP详解

浏览器协议TCP详解 浏览器进程负责存储、界面、下载等管理。在渲染进程中&#xff0c;运行着熟知的主线程、合成线程、JavaScript 解释器、排版引擎等。 浏览器进程处理用户在地址栏的输入&#xff0c;然后将 URL 发送给网络进程。网络进程发送 URL 请求&#xff0c;在接收到响…

【Yolov8自动标注数据集完整教程】

Yolov8自动标注数据集完整教程 1 前言2 先手动标注数据集&#xff0c;训练出初步的检测模型2.1 手动标注数据集2.2 Yolov8环境配置2.2.1 Yolov8下载2.2.2 Yolov8环境配置 2.3 Yolov8模型训练&#xff0c;得到初步的检测模型2.3.1 训练方式 3 使用初步的检测模型实现自动数据集标…