首页 >> 动态 > 甄选问答 >

问c 语言中 while 语句的用法范例 循环控制实战讲解

2026-11-05 09:09:43

答

在 C 语言当中 while 是循环关键字,作用是只要括号里面的条件表达式结果为非零也就是真,就反复执行大括号内部的循环体代码,每执行完一轮循环体之后,会再次回头判断条件,条件依旧成立就继续循环,条件变成零也就是假的时候,退出 while 循环,继续执行循环后面的代码。之所以 while 非常常用,是因为它适合循环次数提前不确定的场景,比如持续读取用户输入,遍历字符串,等待标志位变化,这类场景不知道要循环多少次,就优先选用 while,和 for 循环不一样,for 一般是循环次数明确的场景,while 更加灵活。写 while 循环有三个核心要素,第一循环初始化,在 while 之前给变量设置初始值,第二循环条件,写在 while 括号里面,第三循环体内部要有变量更新语句,如果忘记更新变量,条件永远成立,就会形成死循环,程序一直卡在循环里面无法退出,这是初学者最高频的错误。

基础语法结构

while (循环条件)

{

循环体代码

}

执行流程,先判断条件,条件成立执行循环体,执行完再次判断条件,重复这个流程,直到条件不成立退出循环。

基础范例 1 到 10 累加求和

include

int main ()

{

int i = 1;

int sum = 0;

while (i <= 10)

{

sum = sum + i;

i++;

}

printf ("总和是 % d",sum);

return 0;

}

这个范例里面 i 初始值是 1,每次循环 sum 累加 i,然后 i 自增,当 i 变成 11 的时候,i 小于等于 10 条件不成立,循环结束。

常用进阶范例

范例一 遍历字符串,利用 while 读取字符直到遇到 \0

include

include

int main ()

{

char str [] = "abcdef";

int idx = 0;

while (str [idx] != '\0')

{

printf ("% c",str [idx]);

idx++;

}

return 0;

}

这个范例经常配合字符串处理,原理就是字符串以 \0 作为终止标记,while 条件判断当前字符是不是结束符。

范例二 无限循环写法,while (1),条件恒为真,循环不会自动退出,必须依靠循环体里面的 break 语句跳出循环,常用于菜单程序,等待用户输入选择,直到用户选择退出选项才终止循环。

include

int main ()

{

int op;

while (1)

{

printf ("请输入选项");

scanf ("% d",&op);

if (op == 0)

{

break;

}

}

return 0;

}

while 相关控制语句

break,在循环体内部执行 break,立刻终止当前 while 循环,跳出循环,执行循环后面代码。

continue,执行 continue 之后,跳过本轮循环剩下代码,直接回到 while 位置,重新判断循环条件,不会直接退出整个循环。

while 和 do while 对比表格

项目while 语句do while 语句
判断时机先判断条件,再执行循环体先执行一次循环体,再判断条件
最少执行次数条件一开始就不成立,循环体一次都不执行循环体至少会执行一次
适用场景不确定是否需要执行循环必须至少运行一次的场景

深度拓展要点

第一 死循环问题,如果循环条件永远为真,并且循环体内没有 break,也没有修改条件变量,程序就永久循环,CPU 占用会持续拉高,开发调试遇到程序卡住,优先检查 while 循环是否缺少变量自增更新。

第二 浮点条件做 while 判断的时候,不要直接使用相等判断,因为浮点数存在舍入误差,应该使用差值小于精度阈值的方式写条件。

第三 while 循环可以嵌套,也就是 while 内部再写 while 循环,嵌套的时候 break 和 continue 只作用于当前所在这一层循环,不会直接跳出外层 while,这个是嵌套场景容易踩坑的点。

第四 while 括号里面可以写复合逻辑条件,搭配逻辑与逻辑或,同时判断多个条件,实现更复杂循环控制。

第五 输入读取场景,while 经常搭配 scanf 返回值使用,比如 while (scanf ("% d",&num) == 1),代表只要成功读取到整数,就继续循环,读取失败就退出,适合批量输入处理。

【常见问题】

问题 1 c 语言中 while 语句的用法范例,为什么我的 while 循环一直停不下来

回答 1 c 语言中 while 语句的用法范例,循环停不下来一般是死循环,原因大多是循环体内部没有更新条件变量,条件一直保持成立,或者没有写 break 退出语句,对照范例检查变量自增和退出分支。

问题 2 c 语言中 while 语句的用法范例,while (1) 是什么意思

回答 2 c 语言中 while 语句的用法范例,while (1) 代表条件恒为真,属于无限循环范例,循环本身不会自动结束,必须在循环内部通过 break 语句主动跳出循环,菜单程序经常使用这种写法。

问题 3 c 语言中 while 语句的用法范例,continue 和 break 在 while 里面有什么区别

回答 3 c 语言中 while 语句的用法范例,break 是直接终止整个 while 循环,continue 只是跳过本轮剩余代码,马上回到条件判断,继续下一轮循环,不会退出循环整体。

问题 4 c 语言中 while 语句的用法范例,while 和 do while 可以互换吗

回答 4 c 语言中 while 语句的用法范例,两者不能无条件互换,while 是先判断后执行,有可能一次都不运行,do while 是先执行后判断,至少运行一次,参考范例可以看出执行次数存在本质差别。

【免责申明】

本文代码属于 C 语言教学演示,仅用于学习练习,while 嵌套和输入读取范例没有做完整异常输入防护,死循环场景会占用系统资源,实际项目开发请补充错误处理和退出保护,本文不对所有复杂业务场景的运行结果做绝对保证。

 

相关阅读

最新文章