news 2026/5/1 6:52:36

小白也能懂的C语言核心:判断、循环、函数 一篇吃透

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白也能懂的C语言核心:判断、循环、函数 一篇吃透

刚学C语言的时候,是不是总被if while函数switch这些概念绕晕?别怕,今天用大白话把这些核心知识点讲透,看完就能上手写代码!

目录

一、 判断:程序的“选择题”—— if-else + switch

1. 基础款: if-else ——灵活的二选一/多选一

2. 专业款: switch ——高效的多值匹配

3. 关键帮手:逻辑与关系运算符——判断的“依据”

二、 循环:程序的“复读机”—— while + for + do-while

1. while 循环:先判断,再做事

2. for 循环:把“初始化、条件、更新”打包

3. do-while 循环:先做事,再判断

4. 循环小技巧: break 和 continue

三、 函数:程序的“工具箱”

1. 函数的基本结构

2. 举个栗子:写一个“加法函数”

3.函数的好处

四、 三者结合:写一个实用小程序

最后总结


一、 判断:程序的“选择题”——if-else+switch

判断就是让程序根据条件做选择,就像你出门前看天气:下雨带伞,晴天戴墨镜,这就是判断逻辑。

1. 基础款:if-else——灵活的二选一/多选一

适合范围判断或者复杂条件判断,比如判断成绩是否及格、数值大小。

核心语法(白话翻译)

if (条件成立) { 执行这段代码; } else if (另一个条件成立) { 执行那段代码; } else { 都不成立时执行; }

举个栗子:判断成绩等级

#include <stdio.h> int main() { int score = 85; if (score >= 90) { printf("优秀\n"); } else if (score >= 80) { printf("良好\n"); } else if (score >= 60) { printf("及格\n"); } else { printf("不及格\n"); } return 0; }

白话解释:分数≥90是优秀,80-89是良好,60-79是及格,低于60就不及格,一步步筛选。

2. 专业款:switch——高效的多值匹配

适合固定值判断,比如根据数字选择菜单、根据星期判断课程,比多层if-else更清爽。

核心语法(白话翻译)

switch (要判断的变量) { case 数值1: 执行代码; break; // 跳出switch,不往下跑 case 数值2: 执行代码; break; default: // 没有匹配的数值时执行 执行代码; }

举个栗子:根据数字选择功能

#include <stdio.h> int main() { int choice = 2; switch (choice) { case 1: printf("执行加法运算\n"); break; case 2: printf("执行减法运算\n"); break; case 3: printf("执行乘法运算\n"); break; default: printf("无效选择\n"); } return 0; }

白话解释:变量choice是2,就匹配case 2,执行完后break跳出,避免跑到其他case里。

3. 关键帮手:逻辑与关系运算符——判断的“依据”

要写判断条件,必须先懂关系运算符逻辑运算符,这是条件成立的“标尺”。

类型符号作用例子
关系运算符>大于a > 10 (a大于10成立)
关系运算符<小于a < 10 (a小于10成立)
关系运算符>=大于等于a >= 60 (及格条件)
关系运算符<=小于等于a <= 100 (满分内)
关系运算符==等于(注意不是 = )a == 5 (a等于5成立)
关系运算符!=不等于a != 0 (a不是0成立)
逻辑运算符&&逻辑与(并且)a>60 && a<90 (良好条件)
逻辑运算符||逻辑或,满足一个就行
逻辑运算符!逻辑非(取反)!(a>60) (不及格)

重点提醒:判断“等于”一定要用==,单等号 = 是赋值,比如if(a=5)会把a改成5,永远成立!

二、 循环:程序的“复读机”——while + for + do-while

循环就是让程序重复做同一件事,直到满足停止条件。比如你妈妈让你每天背10个单词,背够30天为止,这就是循环。

1.while循环:先判断,再做事

就像“只要作业没写完,继续写”,条件不满足就直接跳过循环。

核心语法 + 例子

#include <stdio.h> int main() { int day = 1; // 只要day≤30,就重复执行 while (day <= 30) { printf("今天是第%d天,背单词!\n", day); day++; // 天数加1,不然会无限循环! } return 0; }

2.for循环:把“初始化、条件、更新”打包

while循环的“升级版”,适合知道循环次数的场景,写起来更整洁。

上面的例子用 for 写更简单:

#include <stdio.h> int main() { // 初始化day=1;条件day≤30;每次循环后day+1 for (int day = 1; day <= 30; day++) { printf("今天是第%d天,背单词!\n", day); } return 0; }

3.do-while循环:先做事,再判断

适合必须先执行一次的场景,比如“先吃一口饭,再看要不要继续吃”,不管条件满不满足,先干一次再说。

核心语法 + 例子

#include <stdio.h> int main() { int num; do { printf("请输入一个正数:"); scanf("%d", &num); } while (num <= 0); // 输入负数就重新输 printf("你输入的正数是:%d\n", num); return 0; }

白话解释:不管三七二十一,先让用户输入一次;如果输入的不是正数,就重新输入,直到输入正确为止。

4. 循环小技巧:breakcontinue

  • break:直接跳出整个循环,比如背单词背到第10天,妈妈说“不用背了”,就用break终止。
  • continue:跳过本次循环剩下的代码,直接进入下一次判断,比如第5天感冒了,不背单词,直接跳到第6天。

三、 函数:程序的“工具箱”

函数就是把一段常用的代码打包起来,起个名字,以后要用的时候直接“调用”,不用重复写。

就像你家里的工具箱:拧螺丝用螺丝刀,钉钉子用锤子,不用每次都自己造工具。

1. 函数的基本结构

返回值类型 函数名(参数列表) { 函数体(要执行的代码); return 返回值; }
  • 返回值类型:函数执行完返回什么类型的数据,比如int是返回整数,void是不返回任何东西。
  • 参数列表:函数需要的“原材料”,比如加法函数需要两个整数。
  • return:把结果“交出去”,如果是void类型,可以不用return

2. 举个栗子:写一个“加法函数”

比如我们经常要算两数相加,就可以把这个功能做成函数:

#include <stdio.h> // 定义加法函数:接收两个整数,返回它们的和 int add(int a, int b) { return a + b; // 计算结果并返回 } int main() { int num1 = 5, num2 = 8; // 调用add函数,把num1和num2传进去,接收返回值 int sum = add(num1, num2); printf("%d + %d = %d\n", num1, num2, sum); return 0; }

白话解释:

  1. 我们定义了一个叫add的函数,它需要两个整数参数ab ,返回一个整数结果。
  2. main函数里,我们调用add(num1, num2),就是让函数帮我们算5+8,结果存到sum里。

3.函数的好处

  • 省代码:不用每次算加法都写a + b,调用函数就行。
  • 好维护:如果想改加法逻辑(比如算小数相加),只改add函数就行,不用改所有代码。
  • 逻辑清:main函数负责统筹,其他函数负责具体功能,代码像“说明书”一样好懂。

四、 三者结合:写一个实用小程序

最后我们把判断、循环、函数结合起来,写一个“简易计算器”,支持加减乘除,输入 0 退出。

#include <stdio.h> // 加法函数 int add(int a, int b) { return a + b; } // 减法函数 int sub(int a, int b) { return a - b; } // 乘法函数 int mul(int a, int b) { return a * b; } int main() { int choice, num1, num2, result; do { printf("\n===== 简易计算器 =====\n"); printf("1. 加法\n2. 减法\n3. 乘法\n0. 退出\n"); printf("请选择功能:"); scanf("%d", &choice); // 用switch匹配功能选择 switch (choice) { case 1: printf("输入两个数:"); scanf("%d %d", &num1, &num2); result = add(num1, num2); printf("结果:%d\n", result); break; case 2: printf("输入两个数:"); scanf("%d %d", &num1, &num2); result = sub(num1, num2); printf("结果:%d\n", result); break; case 3: printf("输入两个数:"); scanf("%d %d", &num1, &num2); result = mul(num1, num2); printf("结果:%d\n", result); break; case 0: printf("程序退出啦!\n"); br

最后总结

  • 判断if-else/switch:让程序“会做选择”,配合关系/逻辑运算符更灵活;
  • 循环while/for/do-while:让程序“会复读”,break/continue 灵活控流程;
  • 函数:让程序“模块化”,好写好维护。
  • 这三个是C语言的基石,把它们玩明白,就能写各种有趣的程序啦!
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 1:31:04

如何快速解决鼠标点击失效:QtScrcpy的完整修复指南

如何快速解决鼠标点击失效&#xff1a;QtScrcpy的完整修复指南 【免费下载链接】QtScrcpy Android实时投屏软件&#xff0c;此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy …

作者头像 李华
网站建设 2026/4/21 21:18:28

主动扫描跟被动扫描对比

在网络安全领域&#xff0c;扫描技术是发现系统漏洞、防范恶意攻击的基础手段。无论是企业内网的安全巡检&#xff0c;还是渗透测试中的风险排查&#xff0c;都离不开扫描技术的支撑。而主动扫描和被动扫描作为两类核心扫描方式&#xff0c;在探测逻辑、适用场景上有着显著差异…

作者头像 李华
网站建设 2026/4/28 0:31:50

如何用3个简单步骤快速集成小米智能家居到Home Assistant?

如何用3个简单步骤快速集成小米智能家居到Home Assistant&#xff1f; 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 还在为家里各种品牌智能设备无法统一管理而烦恼吗…

作者头像 李华
网站建设 2026/5/1 6:16:24

Proteus仿真基础教学:图文并茂的新手引导教程

从零开始玩转 Proteus&#xff1a;手把手带你做电路仿真 你有没有过这样的经历&#xff1f; 想做个流水灯&#xff0c;结果焊了一堆线发现LED全不亮&#xff1b; 调试一个ADC采样电路&#xff0c;示波器一接上去就烧了芯片&#xff1b; 或者在宿舍里只能对着课本死记硬背单…

作者头像 李华
网站建设 2026/5/1 6:03:04

Uncle小说:重新定义数字阅读的完整解决方案

Uncle小说&#xff1a;重新定义数字阅读的完整解决方案 【免费下载链接】uncle-novel &#x1f4d6; Uncle小说&#xff0c;PC版&#xff0c;一个全网小说下载器及阅读器&#xff0c;目录解析与书源结合&#xff0c;支持有声小说与文本小说&#xff0c;可下载mobi、epub、txt格…

作者头像 李华