C语言:循环语句(逻辑图解)

本文介绍了C语言中的三种循环语句——while,for,和do...while,包括它们的语法结构、应用示例以及break和continue在循环控制中的作用。通过实例展示了如何使用这些语句进行条件判断和循环控制,强调了理解循环逻辑的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环简介

在生活中,我们每天都会重复做很多同样的事情或者有规律的过着生活,这种循环反复的事情,在C语言我们可以也可以实现。
C语言中提供了三种执行循环语句分别是:
while循环语句
for循环语句

do…while循环语句

循环辅助:break和continue

在一个循环程序中,当我们想要跳过循环程序中某一次循环中不想要的语句部分,可以在这部分语句前面加上continue,结束本次执行,跳到下一次循环语句中。
当我们执行循环程序时,突然想要跳出这个循环程序,就用break
在循环语句中,我们常常通过if语句来执行判断是否要跳出本次循环或者跳出这个循环程序,所以break和continue会和if语句进行搭配使用
具体操作请看下面。

while语句

语法结构

         while(表达式)
         循环语句;

在表达式中,我们常用关系表达式,也就是值之间的比较。如果表达式=条件为真(非零)就会执行该程序,为假(零)就会跳出该循环程序。
在这里插入图片描述

例子

打印1-10

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

结果:
在这里插入图片描述
i在每一次循环之后都会增加1,当它超过10之后就会跳出该循环语句。

应用continue

看一下这个代码,与上面执行有什么不同

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 continue;
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

结果:
在这里插入图片描述

当我们i增加到5时,就会执行continue,跳过下面语句,反复如此,所以该循环程序一直在循环,只不过一直执行到continue就跳过,所以没有进行打印大于4的数字,光标会一直闪烁。

应用break

下面代码运行,结果和continue有什么不同呢?

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
break;
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

结果:
在这里插入图片描述
看似和continue执行结果一样,但实际上该程序到i等于5已经跳出循环了,与上面continue差别是非常大的,不要被实际打印结果所迷惑,当然,细心的读者就会发现一个会有光标闪烁,一个是没有的。

for语句

语法结构

 for(表达式1; 表达式2; 表达式3)
     循环语句;

表达式1:初始化
表达式2:控制表达式
表达式3:收尾处理

for语句是将初始化,条件判断,迭代更新三个条件放到一起的循环语句,在很多场景下,运用for语句会更加简洁,易读。
在这里插入图片描述

例子

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 printf("%d ", i);
 }
 return 0;
}

结果:
在这里插入图片描述
跟上面while语句执行结果一样,只是换了for语句。

应用continue

跟上面while的continue一样,换了for语句,执行结果一样吗?

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
    if(i==5)
    continue;
 printf("%d ", i);
 }
 return 0;
}

结果:
在这里插入图片描述
可以发现,打印结果是1-10中没有5,跟上面结果是不一样的。这是因为当i等于5后,跳过下面的printf语句,之后执行i++(表达式3),所以之后i不等于5,跳过了continue语句,执行后面的语句。(上面while的i++是包含在continue下面语句中的,所以会一直循环)。

应用break

更改continue为break

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
    if(i==5)
    break;
 printf("%d ", i);
 }
 return 0;
}

结果:
在这里插入图片描述
结果和while执行的结果是一样的。
实际上,只要将for语句语法和while语句语法的执行逻辑弄懂,是很容易辨别两者的差异的。

for的嵌套

下面代码会打印多少个hehe

#include <stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    for(i=0; i<10; i++)
   {
        for(j=0; j<10; j++)
       {
        printf("hehe\n");
       }
   }
 return 0;
}

结果:
100个hehe
在第一个for中执行第二个for,第二个for需要执行10次才能跳出循环程序,接着第一个for执行第二次循环,第二个for又执行10次循环,以此类推,最终打印了10*10次hehe,也即该嵌套执行了100第二个for循环。

do while语句

语法结构

 do
循环语句;
while(表达式);

do while语句一个特点就是先执行循环程序,再去判断while表达式是否符合要求,所以,无论条件如何,该循环语句至少执行一次
在这里插入图片描述

例子

#include <stdio.h>
int main()
{
 int i = 1;
 do
 {
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
 return 0;
}

结果:
在这里插入图片描述
在很多情况下,do while语句执行情况和while是一致的,所以运用它比较少,
一般都是要在至少执行一次循环状况下用

结尾

对于用哪种循环语句比较合适,要具体问题具体分析,一般来说while和for的运用是同样的结果,主要看你习惯用哪个,当然清楚了解循环语句的逻辑才是最重要的,这样才能在不同状况下将循环语句运用得当。

### 解决PyCharm无法加载Conda虚拟环境的方法 #### 配置设置 为了使 PyCharm 能够成功识别并使用 Conda 创建的虚拟环境,需确保 Anaconda 的路径已正确添加至系统的环境变量中[^1]。这一步骤至关重要,因为只有当 Python 解释器及其关联工具被加入 PATH 后,IDE 才能顺利找到它们。 对于 Windows 用户而言,在安装 Anaconda 时,默认情况下会询问是否将它添加到系统路径里;如果当时选择了否,则现在应该手动完成此操作。具体做法是在“高级系统设置”的“环境变量”选项内编辑 `Path` 变量,追加 Anaconda 安装目录下的 Scripts 文件夹位置。 另外,建议每次新建项目前都通过命令行先激活目标 conda env: ```bash conda activate myenvname ``` 接着再启动 IDE 进入工作区,这样有助于减少兼容性方面的问题发生概率。 #### 常见错误及修复方法 ##### 错误一:未发现任何解释器 症状表现为打开 PyCharm 新建工程向导页面找不到由 Conda 构建出来的 interpreter 列表项。此时应前往 Preferences/Settings -> Project:...->Python Interpreter 下方点击齿轮图标选择 Add...按钮来指定自定义的位置。按照提示浏览定位到对应版本 python.exe 的绝对地址即可解决问题。 ##### 错误二:权限不足导致 DLL 加载失败 有时即使指定了正确的解释器路径,仍可能遇到由于缺乏适当的操作系统级许可而引发的功能缺失现象。特别是涉及到调用某些特定类型的动态链接库 (Dynamic Link Library, .dll) 时尤为明显。因此拥有管理员身份执行相关动作显得尤为重要——无论是从终端还是图形界面触发创建新 venv 流程均如此处理能够有效规避此类隐患。 ##### 错误三:网络连接异常引起依赖下载超时 部分开发者反馈过因网速慢或者其他因素造成 pip install 操作中途断开进而影响整个项目的初始化进度条卡住的情况。对此可尝试调整镜像源加速获取速度或是离线模式预先准备好所需资源包后再继续后续步骤。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诡异森林。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值