C语言中有三种类型的循环:for,while,do-while。

while循环先判断循环条件。

while (condition)
{
//gets executed after condition is checked
}

do-while循环先执行循环体重的语句,再判断循环条件。

do
{
//gets executed at least once
} while (condition);

for循环可以一行中初始化一个计数变量,设置一个判断条件,和计数变量的自增。

for (int x = 0; x < 100; x++)
{
//executed until x >= 100
}

归根到底它们都是循环,但如何执行这些循环还有一些灵活的变化。


for循环看起来最舒服,因为他最精确。

for (int x = 0; x < 100; x++)
{
//executed until x >= 100
}

为了将上面的for循环改写成while循环,你需要这样:

int count = 0;
while (count < 100)
{
//do stuff
count++;
}

这种情况下,也许你会在count++;下面添加一些别的内容。这样count在什么地方自增就要考虑清楚,实在逻辑比较之后还是之前?在for循环中计数变量每一次自增都在下一次迭代之前,这会让你的代码保持某种一致性。

break与continue语句

break语句的作用是终止当前的循环(直接跳到循环体外),当前循环的所有迭代都会停止。

//will only run "do stuff" twice
for (int x = 0; x < 100; x++)
{
if (x == 2)
{
break;
}
//do stuff
}

continue语句的作用是终止当前的迭代,直接跳到下次迭代。

//will run "do stuff" until x >= 100 except for when x = 2
for (int x = 0; x < 100; x++)
{
if (x == 2)
{
continue;
}
//do stuff
}

C语言中不同类型的循环(Different types of loops in C)的更多相关文章

  1. C语言中简单的for循环和浮点型变量

    浮点型变量:常数中带有小数点的叫做浮点型 以下用for循环写一个摄氏度和华氏度的转换的C程序 [见 http://www.linuxidc.com/Linux/2013-08/88513.htm ] ...

  2. C++语言中的类型(二)

    --分门别类是简化事物最有效的方式. C++语言的强大能力的体现在对程序员自定义数据类型的支持.C++语言主要的一个设计目标就是让程序员自定义的数据类型像内置类型一样好用. 一.自定义数据类型 数据类 ...

  3. C++语言中的类型(一)

    --分门别类是简化事物最有效的方式. 类型是C++语言的基础,对象类型决定了能对该对象进行的操作. 一.基本内置数据类型 C++预先定义的基本内置数据类型是构造世界万物的原子,数据类型告诉我们数据的意 ...

  4. php弱类型语言中的类型判断

    1.php一个数字和一个字符串进行比较或者进行运算时,PHP会把字符串转换成数字再进行比较.PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0. 例如:123abc转换后 ...

  5. C语言中不同类型的数据转换规则

    不同类型数据间的混合运算与类型转换 1.自动类型转换 在C语言中,自动类型转换遵循以下规则: ①若参与运算量的类型不同,则先转换成同一类型,然后进行运算 ②转换按数据长度增加的方向进行,以保证精度不降 ...

  6. C#语言中的类型转换方法(unfinished)

    一.C#中的数据类型 1.数值类型 2.字符类型 3.字符串类型 4.布尔类型 5.枚举类型 6.Object类型 二.常见的类型转换 从转换方式的角度,类型转换分为隐式转换与显式转换两种. 其中,隐 ...

  7. 关于C语言中不同类型数据进行计算 有符号和无符号数进行计算

    float是8个有效位, 做个试验: 输出如下: 上面说明了什么: 1, 18/2.2 是除不尽的, 因为是define,所以没有给ratio变量赋值类型,但是从sizeof输出的结果是8,所以系统默 ...

  8. c语言中各个类型的sizeof长度

    #include <stdio.h> int main() {     printf("\nA Char is %lu bytes", sizeof( char )); ...

  9. Go 语言中的方法,接口和嵌入类型

    https://studygolang.com/articles/1113 概述 在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?我们猜一下,可能有两个问题: 编译器会 ...

随机推荐

  1. DBA 经典面试题(4)

    1.如果信息采集管理系统(ICM)崩溃了怎么办?  答案:所有其他的管理器都会继续工作.ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器.    2.你如何加速打补丁的过程?    答案: ...

  2. linux使用mysql的命令

    1.连接到mysql服务器的命令 mysql -h 服务器主机地址 -u 用户名 -p 用户密码 例:mysql -h 192.168.1.1 -u root -p   //指定服务器的主机地址和用户 ...

  3. redis实现spring-data-redis整合

    java之redis篇(spring-data-redis整合)  博客链接网址:http://www.cnblogs.com/yjmyzz/tag/redis/ redis的知识:官网 1,利用sp ...

  4. Eclipse代理设置

    这段时间公司实行代理上网,不仅通过浏览器上网须要不停的输入username和password,在本地调试程序时候Eclipse居然也弹出框让输入username和password. 如图: 解决的方法 ...

  5. [Hapi.js] Route parameters

    Routing is a fundamental aspect of any framework. In this lesson, you'll learn how to use path param ...

  6. iOS8 Core Image In Swift:更复杂的滤镜

    iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸 ...

  7. hadoop多文件输出

    现实环境中,经常遇到一个问题就是想使用多个Reduce,可是迫于setup和cleanup在每个Reduce中会调用一次,仅仅能设置一个Reduce,无法是实现负载均衡. 问题,假设要在reduce中 ...

  8. AfxBeginThread的介绍/基本用法

    AfxBeginThread    用户界面线程和工作者线程都是由AfxBeginThread创建的.现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一 ...

  9. 微信jssdk批量展示卡包中的卡券

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. iOS textfield限制长度,中文占2字符,英文占1字符

    之前遇到一种情况,限制textfield长度,并且要适配多语言,做到,例如中文占2字符,英文占1字符,还有考虑其他语言,网上找了很多方法,不太合适,最后结合网上的方案,修改出了还比较适用. 首先,增加 ...