刚学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. 循环小技巧:break和continue
- 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; }白话解释:
- 我们定义了一个叫add的函数,它需要两个整数参数a和b ,返回一个整数结果。
- 在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语言的基石,把它们玩明白,就能写各种有趣的程序啦!