是不是刚学 C 语言就卡在这俩地方?想让程序判断个 “及格不及格”,写的 if 语句要么没反应,要么全错;想让程序重复算个数,要么少算一次,要么直接卡死,只能关掉重来?其实啊,循环和条件语句是 C 语言里让程序 “变聪明” 的核心,零基础学这个真不用怕,找对方法练几天就能上手。今天兔子哥就用大白话,带着大家从基础用法到实战例子,把这俩知识点吃透,保证你看完就知道该怎么练,再也不用对着代码发呆啦!
一、先搞定条件语句:让程序学会 “做选择”
新手最懵的问题:if...else 到底咋用?为啥我的判断总出错?
咱们生活里天天做选择:“下雨了就带伞,不下雨就不带”“考试及格了就出去玩,不及格就刷题”。条件语句就是让程序干这事的,用 if...else 就能实现,特简单。
1. 最基础的 if 语句:满足条件就做事
比如判断一个数是不是正数,用 if 语句这么写:
c
#include int main() {int num = 5;if (num > 0) { // 如果num大于0printf("这是正数!"); // 就打印这句话}return 0;}你看,
if (条件)后面加个大括号,条件满足了就执行括号里的代码。这里的条件可以是> < ==这些比较,记住判断相等要用==,单个=是赋值,别弄混,新手最容易在这栽跟头。2. 加个 else:条件不满足就换个做法
光有 if 不够啊,比如判断成绩及格不及格,得有两种结果:
c
int score = 70;if (score >= 60) {printf("及格啦,真棒!");} else { // 如果上面的条件不满足,就执行这里printf("不及格,再努努力!");}这里要注意,else 后面不用写条件,它自动对应前面最近的 if,大括号也别忘了加,不然程序可能只执行第一行代码,后面的不管。
3. 多条件判断:用 else if 处理多种情况
有时候选择不止两种,比如给成绩评等级:
c
int score = 85;if (score >= 90) {printf("优秀");} else if (score >= 80) { // 前面条件不满足,就看这个printf("良好");} else if (score >= 60) {printf("及格");} else { // 前面都不满足,就到这printf("不及格");}这里有个小技巧:条件要按顺序写,从大到小或从小到大,不然可能判断不准。比如先写
score >=60,那 85 分就会直接判成 “及格”,不会到 “良好” 了,对吧?二、再学循环语句:让程序 “重复做事” 不费劲
场景痛点:想打印 1 到 10 的数字,总不能写 10 个 printf 吧?
这时候循环就派上用场了!循环能让一段代码重复执行,不用手动复制粘贴,简直是省事儿小能手。C 语言里常用的有 for、while、do-while 三种,咱们一个个说。
1. for 循环:已知次数时最好用
比如打印 1 到 5 的数字,用 for 循环特清晰:
c
for (int i = 1; i <= 5; i++) { // 初始化;条件;更新printf("%d ", i); // 输出:1 2 3 4 5}你看这格式多规整:
for(初始变量; 循环条件; 变量更新),三部分都写对,循环就错不了。新手常忘的是 “变量更新”,比如漏写i++,变量 i 不变,条件永远满足,就成了 “死循环”,程序卡着不动,只能强制关掉,这点一定要注意!2. while 循环:不知道次数,靠条件结束时用
比如让用户输入数字,直到输入 0 才停下:
c
int num;printf("请输入数字(输入0结束):");scanf("%d", &num);while (num != 0) { // 只要num不是0,就一直循环printf("你输入了:%d\n", num);printf("请继续输入(0结束):");scanf("%d", &num); // 记得更新条件,不然死循环}printf("结束啦!");while 循环要注意,循环里一定要有让条件变化的代码,比如这里的重新输入 num,不然就会一直循环下去,跟 for 循环漏写 i++ 一个道理。
3. do-while 循环:至少要执行一次时用
和 while 的区别是,do-while 先执行一次代码,再判断条件,保证至少跑一遍。比如让用户输入密码,至少输入一次:
c
int password;do { // 先执行一次printf("请输入密码:");scanf("%d", &password);} while (password != 123456); // 密码不对就再输printf("密码正确!");这种情况用 do-while 就比 while 好,不用在循环外先写一次输入代码,省事多了。
三、条件和循环结合:做个小工具练手
光单独练没意思,把条件和循环放一起,才能做实用的东西。比如做个 “偶数求和器”:计算 1 到 100 里所有偶数的和。
步骤拆解:
- 用循环遍历 1 到 100 的数字;
- 用条件判断是不是偶数(能被 2 整除);
- 是偶数就加到总和里。
代码示例:
c
#include int main() {int sum = 0; // 存总和// 循环1到100for (int i = 1; i <= 100; i++) {// 判断是不是偶数(i%2 == 0)if (i % 2 == 0) {sum = sum + i; // 是偶数就加进来}}printf("1到100的偶数和是:%d", sum); // 结果是2550return 0;}你看,这段代码把 for 循环和 if 条件结合起来,是不是很实用?新手可以试试改改条件,比如算奇数的和,或者 1 到 50 的偶数和,练手特好。
四、常见错误对照表:这些坑你肯定会踩
| 错误类型 | 错误代码示例 | 为啥错了 | 怎么改 |
|---|---|---|---|
| if 条件用 = | if (score = 60) | 单个 = 是赋值,条件永远为真 | 改成 ==:if (score == 60) |
| 循环漏更新 | while (i < 10) { printf(i); } | i 不变,条件永远满足,死循环 | 加 i++:while (i < 10) { printf (i); i++; } |
| 漏写大括号 | if (a> b) printf ("大"); printf ("结束"); | 第二个 printf 不管条件都执行 | 加上大括号:if (a> b) { printf ("大"); } printf ("结束"); |
| 循环条件反了 | for (i=5; i > 0; i++) | i 越来越大,条件永远满足 | 改成 i--:for (i=5; i> 0; i--) |
五、自问自答:新手练的时候最常问的问题
Q:“三种循环到底该用哪个啊?总选错。”
A:简单说:知道要循环几次用 for(比如 1 到 100);不知道次数但知道结束条件用 while(比如输入 0 结束);至少要执行一次用 do-while(比如输密码)。刚开始不用纠结,多试几次就有感觉了。
Q:“条件语句里的 else 总跟错 if,咋办?”
A:最好的办法是加缩进和大括号,哪怕代码只有一行也加上,比如:
c
if (a > 10) {if (a > 20) { // 缩进表示这个if属于上面的printf("很大");} else { // 这个else对应最近的if(a>20)printf("中等");}}这样一眼就能看出谁跟谁配对,不容易错。
兔子哥觉得,学循环和条件语句的关键就俩字:多练。别光看教程里的例子,自己动手改改条件、换换循环类型,看看结果咋变的。我刚开始学的时候,写 for 循环总把条件写成
i = 10,结果循环一次就停,改了三次才发现是把<写成=了,现在想起来还挺逗。其实这俩知识点不难,就是细节多,比如
==和=的区别、循环里的更新语句,这些小地方注意到了,写代码就顺了。新手别怕报错,错一次就记一次,下次就不会再犯。现在就打开编译器,从写一个简单的 if 判断开始,再试试用循环打印点东西,你会发现越练越顺手,加油哦!版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~