分支与循环(for与do-while)

简介: 分支与循环(for与do-while)

一:循环语句(for语句)


我们先从语句的基本语法讲起,


基本语法:       for(表达式1; 表达式2; 表达式3

                               循环语句;


表达式 1

表达式 1叫做 初始化部分 ,该部分用于初始化循环变量的。

表达式 2

表达式 2叫做 条件判断部分 ,该部分用于判断循环时候终止。

表达式 3

表达式 3叫做 调整部分 ,该部分用于循环条件的调整。我们在写for语句以及其他循环语句时必须要注意调整部分,不然非常容易造成死循环。

举例介绍for循环

题目: 使用for循环 在屏幕上打印1-10的数字。


#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
//i=1:初始化; i<=10:判断部分; i++:调整部分
 {
 printf("%d ", i);
 }
 return 0; 
}


对for循环的文解:                                                                                                                         1:当编译器执行到了for循环后,先对初始化部分进行赋值                                                               2:执行判断条件,若判断结果为假,则不进行循环,直接跳出循环:若为真,则执行循环语句   3:在循环语句结束后执行调整部分                                                                                                   4:如果遇见break语句,则跳出循环,整个循环结束                                                                         5:如果遇见continue语句,后面的循环语句不执行,直接跳出本次循环,执行后面循环的语句


for循环与while循环对比:


同样是打印1-10的数字          

int i = 0;
//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
 printf("hehe\n");
 i = i+1;//调整部分
}
//实现相同的功能,使用while
for(i=1; i<=10; i++) {
 printf("hehe\n");
}

while循环也存在这样三个部分,但是代码可能会很长导致三个部分距离很远,以至于代码不方便查找和修改;而对for循环而言较为略胜一筹,且for循环使用频率较高一些。


for语句的循环控制变量:


要求:


1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。

2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

什么叫做前开后闭?

for(int i=0;i<10;i++)
{
      ......
}
for(int i=0;i<=10;i++)
{
      ......
}

上述i=0;i<10就是前闭后开,而i=0;i<=10是两边都关闭

关于for循环的变种:

(1)

#include <stdio.h>
int main()
{
 for(;;)
 {
 printf("hehe\n");
 }
    //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问
}

如果我们把该循环语句写成这样,循环则为死循环。因为判断条件为空,默认为true。

(2)

for循环支持嵌套使用,在for循环中可以在写for循环,支持无限套娃。


 for(i=0; i<10; i++)
   {
        for(j=0; j<10; j++)
       {
 printf("hehe\n");
       }
   }


结果会打印 i * j 个hehe

(3)

省略掉初始化部分,例如上一段代码

int i=0;
int j=0; 
for(; i<10; i++)
   {
        for(; j<10; j++)
       {
 printf("hehe\n");
       }
   }

那么结果会如何呢?


答案是只打印了10个hehe,因为既然省略了初始化,那么当j=10的时候,里面的for循环将不再继续执行了,两个for循环都已外部初始化的i、j为准。


二:do-while循环


基本语法:

                       do

                       循环语句;

                       while(表达式);


do表示执行的意思,do语句的特点就是至少执行循环一次。但是 使用的场景有限,所以不是经常使用。

同样do-while语句至少执行循环语句一次。

对do-while循环的文解:                                                                                                                     1:当编译器执行到了do-while循环后,直接执行循环语句                                                             2:执行完循环语句后,执行判断条件,若判断结果为假,则不进行循环,直接跳出循环:若为真,则执行循环语句                                                                                                                            3:如果遇见break语句,则跳出循环,整个循环结束                                                                         4:如果遇见continue语句,后面的循环语句不执行,直接跳出本次循环,执行后面循环的语句

do-while与while的比较:

do-while循环会至少执行一次循环,而while可能会照成一次循环都不执行,直接跳出循环。

三种循环的使用频率:

一般的我们最常见的是用for循环,其次是while循环,最后才是do-while循环。

使用频率为: for>while>do-while


相关文章
|
人工智能 监控 安全
政府行业应用解决方案 | 应急行业
本文介绍了政府行业应用解决方案 | 应急行业的方案概述,方案价值及优势以及最佳实践。
政府行业应用解决方案 | 应急行业
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程掌握得不是很深刻,那么耐心点,看完这篇文章,相信你会有所收获的。
264 3
【面试题精讲】JVM中哪些对象可以被称为GC ROOT对象
【面试题精讲】JVM中哪些对象可以被称为GC ROOT对象
|
人工智能 文件存储 对象存储
Stable Diffusion 模型库,AIGC 画风任你选
Stable Diffusion(简称 SD)模型库包含写实、国漫、科技等几十种风格。可以让用户一键转存到自己的存储空间,而后直接挂载到 PAl 或 FC 下进行推理和训练。无需复杂漫长的下载和上传步骤,即可获得多种模型的使用体验,实现云上 AIGC 的快速搭建。
52463 22
Stable Diffusion 模型库,AIGC 画风任你选
|
安全 Java 编译器
深入理解 Java 枚举 Enum 类型用法
深入理解 Java 枚举 Enum 类型用法
1735 0
|
Java Maven
IntelliJ IDEA - 普通文件夹转 Module 模块
IntelliJ IDEA - 普通文件夹转 Module 模块
2732 0
IntelliJ IDEA - 普通文件夹转 Module 模块
|
JavaScript 安全 前端开发
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(下)
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞
318 0
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(下)
|
Java 程序员 Scala
Scala基础教程 - 单例对象、伴生类是什么?
Scala基础教程 - 单例对象、伴生类是什么?
311 0
|
Windows
WINDOWS下,找包含特殊字串的文件的解决办法
WINDOWS下,找包含特殊字串的文件的解决办法
153 0
|
计算机视觉 异构计算 openCL
linux_libfreenect2_opencv3.4.2_kinect2.0获取各种视频图像
在安装好了kinect2.0在linux下的驱动(libfreenect2),以及opencv3.4.2后,就可以运用他们来驱动kinect2.0显示各种视频画面。
1589 0