文章目录

  • 1 循环语句分析
    • 1.1 do...while循环
    • 1.2 while循环
    • 1.3 for循环
    • 1.4 三种循环语句使用对比
  • 2 break和continue的区别
  • 3 总结

1 循环语句分析

C语言中的循环语句主要有for循环,while循环和do…while循环。

循环语句的基本工作方式:

  • 通过条件表达式判断是否执行循环体
  • 条件表达式遵循if 语句的表达式原则

do,while,for的区别

  1. do 语句先执行,后判断,至少执行一次循环体
  2. while语句先判断,后执行,可能不执行循环体
  3. for语句,先判断后执行,想比较while更简洁

1.1 do…while循环

do…while循环的方式:

1.2 while循环

while循环的方式:

1.3 for循环

for循环方式:

1.4 三种循环语句使用对比

  • 代码7-1.c
#include <stdio.h>int f1(int n)
{int ret = 0;if( n > 0 ){do{ret += n;n--;}while( n > 0 );}return ret;
}int f2(int n)
{int ret = 0;while( n > 0 ){ret += n;n--;}return ret;
}int f3(int n)
{int ret = 0;int i = 0;for(i=1; i<=n; i++){ret += i;}return ret;
}int main()
{printf("%d\n", f1(100));printf("%d\n", f2(100));printf("%d\n", f3(100));return 0;
}
  • 运行结果为:

5050
5050
5050

2 break和continue的区别

  • break表示终止循环的执行
  • continue表示终止本次循环,进入到下一次循环执行

思考:switch语句是否可以使用continue语句?

  • 代码7-2.c
#include <stdio.h>void f1(int n)
{int i = 0;for(i=1; i<=n; i++){if( (i % 2) == 0 ){break;}printf("%d ", i);}printf("\n");
}void f2(int n)
{int i = 0;for(i=1; i<=n; i++){if( (i % 2) == 0 ){continue;}printf("%d ", i);}printf("\n");
}int main()
{f1(10);f2(10);return 0;
}

编译运行结果为:

1
1 3 5 7 9

3 总结

  • for循环先进行判断再进入循环体
  • for循环适合循环次数固定的场合
  • while循环先进行判断再进入循环体
  • while循环适合循环次数不固定的场合
  • do…while循环先执行循环体再进入循环体
  • do…while循环至少执行循环体一次

【C语言进阶深度学习记录】七 C语言中的循环语句相关推荐

  1. 【C语言进阶深度学习记录】三十八 C/C++语言中的函数声明与函数定义

    文章目录 1 函数的声明和定义 1.1 代码分析 2 总结 1 函数的声明和定义 声明的意义在于告诉编译器程序单元的存在.只是告诉编译器它存在但是不在声明这里定义,有可能在当前文件中的其他地方或者其他 ...

  2. 【C语言进阶深度学习记录】三十五 程序中的堆、栈以及静态存储区(数据区)

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 在我之前学习底层的知识的时候,也写过相关的内容.可以对比的学习:[软 ...

  3. 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析

    之前有一篇文章是学习了字符和字符串的,可以与之结合学习:[C语言进阶深度学习记录]十二 C语言中的:字符和字符串 文章目录 1 字符串的概念 1.1 字符串与字符数组 1.2 字符数组与字符串代码分析 ...

  4. 【C语言进阶深度学习记录】十九 #pragma使用与分析

    文章目录 1 #pragma 概念简介 1.1 #pragma message 的用法 1.2 #pragma once 的用法 1.3 #pragma pack 的用法 1.31 struct占用的 ...

  5. 【C语言进阶深度学习记录】十六 静态库与动态库的创建与使用

    上一篇文章学习了编译的过程,点击链接查看:[C语言进阶深度学习记录]十五 编译过程简介,每一个C源文件编译后将会生成目标文件,那么这些目标文件,还需要链接起来,生成可执行文件. 文章目录 1 链接的意 ...

  6. 【C语言进阶深度学习记录】八 C语言中void的分析

    文章目录 1 void的意义 1.1 不存在void变量 1.2 C标准 1.3 void指针的意义 1.4 通过void* 实现memset函数 2 总结 1 void的意义 void修饰函数的参数 ...

  7. 【C语言进阶深度学习记录】五 C语言中变量的属性

    上一篇文章学习了C语言中的类型转换,点击链接查看:[C语言进阶深度学习记录]四 C语言中的类型转换. 文章目录 1 C语言的变量属性 1.1 auto关键字 1.2 register关键字 1.3 s ...

  8. 【C语言进阶深度学习记录】十七 宏定义的使用与分析

    文章目录 1 C语言中的宏定义 1.1 定义宏常量 1.2 宏定义表达式 1.3 宏表达式与函数的对比 1.4 宏表达式的作用域 2 C语言中的内置宏 3 宏定义的代码综合示例 4 总结 1 C语言中 ...

  9. 【C语言进阶深度学习记录】九 C语言中const的详细分析

    文章目录 1 const的分析 2 const本质的分析实验 2.1 代码案例分析 3 const修饰函数参数和返回值时的情况 3.1 代码案例分析 4 总结 1 const的分析 不管是C语言还是C ...

最新文章

  1. sqlite-jdbc jar包下载过程笔记
  2. linux的ip地址是127,Linux的IP地址显示127.0.0.1的解决办法
  3. python建立回归模型_简单线性回归的Python建模方法
  4. android颜色值的表示方法android:background=#FFFFFFFF的意思
  5. python中int和eval的区别_python中eval与int的区别浅析
  6. python文件拷贝到其他盘符_Python:文件操作技巧(File operation)
  7. 另一个强大的Visualizers :Mole For Visual Studio
  8. android 控件获取rect,Android自定义View圆形进度条控件(三)
  9. 转载——傅里叶变换概念及公式推导
  10. 说一说科大讯飞Windows版本唤醒功能10102功能的问题
  11. java水彩画效果滤镜,教你巧用PS滤镜实现水彩画效果
  12. 一个程序小白的大胆尝试 (鸡汤)
  13. 《Git与Github使用笔记》第12章 Pull Request的使用
  14. spark kryo java_Spark 配置Kryo序列化机制
  15. CCF-卖菜(Python)
  16. 阿里云ACA课程之云上安全防护
  17. 线索二叉树和中序非递归遍历线索化后的二叉树
  18. 曙光服务器amd芯片,AMD六核体验 曙光Ar-H服务器首发评测.docx
  19. 电脑外设(I/O)简介:键盘鼠标
  20. Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall

热门文章

  1. 实例25:python
  2. centos7 安装cacti
  3. 无线网络共享到CM3计算板调试时 connect: Network is unreachable
  4. 新华计算机学校环境好吗,新华电脑校园环境好不好?(二)
  5. hive 动态分区实现 (hive-1.1.0)
  6. $Android连续按返回键两次实现退出程序
  7. JDE Client开发端 左侧边栏设置
  8. Informix IDS 11体系操持(918测验)认证指南,第 4 部门: 机能调优(1)
  9. 软件工程 工具之二—— PowerDesigner v12(六)
  10. springboot使用mongodb