08-C语言循环
目录:
一、for循环
标识每次循环,循环终止条件,循环间的规律
签到 毕业 天
for 变量=1 变量<100 变量++
int i = 0;
for(i = 1;i<=100;i++){}
1.循环就是重复执行循环体(语句、语句块组成),在C语言中,没一个循环都有一个控制表达式(终止循环的条件),每次循环的时候,都要向控制表达式求值,如果表达式的值为真1,那么继续循环,如果为假,终止循环。
2.c语言中使用循环语句来反复执行特定的代码段,在c语言中循环有三种表达方式:for/while/do while
3.for循环语法格式:
for(表达式1;表达式2;表达式3){
循环体;(一条或多条语句)
}
表达式1:用来标识每一次循环,初始值,
表达式2:判断循环是否执行的控制语句,
表达式3:每次循环之间的规律,步长
4.循环的执行顺序,
第一次执行的时候,
执行表达式1 -> 表达式2(真)-> 循环体
执行表达式1 -> 表达式2(假)-> 终止循环
第二次执行的时候,
执行表达式3 -> 表达式2(真)-> 循环体
执行表达式3 -> 表达式2(假)-> 终止循环
第n次
执行表达式3 -> 表达式2(真)-> 循环体
执行表达式3 -> 表达式2(假)-> 终止循环
求:1~100的和
练习:使用循环输入四个数,求最大值、最小值、和。
#include <stdio.h> int main()
{
int i = ;
//i=1:循环的标识
//i<=100:终止条件
//i++:循环的规律
for(i = ; i <= ; i++){
printf("%d ",i);
}
printf("\n"); //求1~100的和
int sum = ;
for(i = ;i <= ;i++){
sum += i;
}
printf("1~100的和是:%d\n",sum); //使用循环输入四个数,求最大值、最小值、和。
int num = ,sum2 = ,max = ,min = ;
for(i = ; i <= ; i++){
printf("输入第%d个数字:\n",i);
scanf("%d",&num);
if(num > max){
max = num;
}
if(num < min){
min = num;
}
sum2 += num;
}
printf("max:%d,min:%d,sum2:%d\n",max,min,sum2); return ;
}
练习:输入10个数,求最大值、最小值、和、差、积、商。
练习:输出100内的奇数,不能被2整除
练习:输出100内的偶数,能被2这出
#include <stdio.h> //练习:输入10个数,求最大值、最小值、和、差、积、商。
void test1()
{
int num = ,sum = ,ji = ,cha = ,shang = ;
int i = ,max = ,min = ;
for( i = ; i <= ; i++){
printf("输入第%d个数:\n",i);
scanf("%d",&num);
if(num > max){
max = num;
}
if(num < min){
min = num;
}
sum += num;
cha -= num;
ji *= num;
shang /= num;
}
printf("max:%d,min:%d,sum:%d,ji:%d,cha:%d,shang:%d\n",max,min,sum,ji,cha,shang);
} //练习:输出100内的奇数,不能被2整除
void test2()
{
int i = ;
//不能被2整除
for(i = ; i <=; i++){
if(i % != ){
printf("%d ",i);
}
}
} //练习:输出100内的偶数,能被2这出
void test3()
{
int i = ;
for(i = ; i <=; i++){
if(i % == ){
printf("%d ",i);
}
}
printf("\n");
}
int main()
{
test1();
//test2();
//test3();
return ;
}
5.for(;;)这样写编译不报错,但;号不能省略,这是个死循环,Ctrl + c 终止循环。
二、break、continue
break关键字,不但可以终止switch语句,也可以终止for循环语句。
continue关键字,可以终止当次循环,继续下一次循环。
练习:输入一个数,得到数的长度(位数),如1234,长度就是4,
#include <stdio.h> int main()
{
int num = ,i = ,length = ;
printf("输入一个数:\n");
scanf("%d",&num);
printf("%d",num);
for(i = ; i <= ; i++){
length++;
num /= ;
if(num == ){
break;
}
}
printf("长度是:%d\n",length);
return ;
}
三、循环嵌套(多重循环)
for(){
for(){
...
}
}
#include <stdio.h> int main()
{
int i = ,j = ;
for(i = ; i <= ; i++){
for(j = ; j <= ; j++){
printf("%d%d ",i,j);
}
printf("\n",i,j);
}
return ;
}
1.如果两重循环,外面的循环执行一次,里面的循环执行一遍,
2.外面的循环和行有关系,里面的循环和列有关系
练习:
1.*****
2. 3. 4.
* * *****
** *** ***
*** ***** *
**** *******
*****
#include <stdio.h> int main()
{
int i = ,j = ;
//打印*****
for(i = ; i <= ; i++){
printf("*");
}
printf("\n");
/*
2. 3. 4.
* * *****
** *** ***
*** ***** *
**** *******
*****
*/
//2.
for(i = ; i <= ; i++){
for(j = ; j <= i; j++){
printf("*");
}
printf("\n");
}
printf("\n");
//3.
for(i = ; i <= ; i++){
for(j = ; j <= i * - ; j++){
printf("*");
}
printf("\n");
}
printf("\n");
//4.
for(i = ; i >= ; i--){
for(j = ; j <= i * - ; j++){
printf("*");
}
printf("\n");
}
printf("\n");
//4. (另一种写法)
int rows = ;
for(i = ; i <= ; i++){
for(j = ; j <= * (rows - i) + ; j++){
printf("*");
}
printf("\n");
}
return ;
}
九九乘法表。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
.........
#include <stdio.h> int main()
{
int i = ,j = ;
for(i = ;i <= ;i++){
for(j = ;j <= i; j++){
printf("%d*%d=%d\t",j,i,i*j);
}
printf("\n");
}
return ;
}
四、while
1.while循环与for循环完全互通,除了语法格式稍有区别,其工作原理,工资方式一样。
2.语法格式;
表达式1;
while(表达式2){
循环体;
表达式3;
}
3.执行顺序
第一次执行循环的时候,
表达式1 -> 表达式2(真) -> 循环体 -> 表达式3
表达式1 -> 表达式2(假) -> 终止循环
第二次循环的时候,
表达式2(真)-> 循环体 -> 表达式3
表达式2(假)-> 终止循环
作业:重构for循环练习
#include <stdio.h> int main()
{
int i = ;
while(i < ){
printf("i:%d\n",i);
i++;
}
return ;
}
五、do while
先执行循环体,在进行判断。do while与for、while最大的不同,就算条件不成立,至少会执行一次
语法格式:
表达式1;
do{
循环体;
表达式3;
}while(表达式2);
执行顺序
第一次执行的时候
表达式1 -> 循环体 -> 表达式3 -> 表达式2(真)-> 继续循环
表达式1 -> 循环体 -> 表达式3 -> 表达式2(假)-> 终止循环
第二次循环的时候
循环体 -> 表达式3 -> 表达式2(真)-> 继续循环
循环体 -> 表达式3 -> 表达式2(假)-> 终止循环
作业:重构for循环的练习
#include <stdio.h> int main()
{
int i = ;
do{
//i++;放在这里结果会出现改变
printf("i:%d\n",i);
i++;
}while(i <= );
return ;
}
六、三个循环的对比
1.可以控制循环的范围使用for循环
2.关注循环规则使用while循环
2.第一次不需要进行判断的时候do...while
七、空语句
空语句常用来编写空循环体的循环,
c程序习惯性的把空语句单独放一行,
如果循环体只有一行,可以省略{}
08-C语言循环的更多相关文章
- [08 Go语言基础-for循环]
[08 Go语言基础-for循环] 循环 循环语句是用来重复执行某一段代码. for 是 Go 语言唯一的循环语句.Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环 ...
- Go语言循环判断的使用~
Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 下图展示了程序语言中条件语句的结 ...
- R语言 循环
R语言循环 可能有一种情况,当你需要执行一段代码几次. 通常,顺序执行语句. 首先执行函数中的第一个语句,然后执行第二个语句,依此类推. 编程语言提供允许更复杂的执行路径的各种控制结构. 循环语句允许 ...
- 08. Go 语言包(package)
Go 语言包(package) Go 语言的源码复用建立在包(package)基础之上.Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,必须同 ...
- C语言-循环结构及break、continue
循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...
- go语言循环语句 for
Go语言中的循环语句只支持for关键字,而不支持while和do-while结构. sum := 0 for i := 0; i < 10; i++ { sum += i } 无限循环的写法: ...
- C语言循环的嵌套
注:参考网络资源拟制,如雷同请见谅循环的嵌套:一个循环体语句中又包含另一个循环语句,称为循环嵌套.嵌套注意事项:1.使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同.2.循环嵌套结构的书写,最 ...
- C语言循环的实现
在C语言中采用3中语法来实现循环,它们分别是while.for.do while,本文将分别说明这三种循环的实现,并对它们的运行效率进行比较. do while 首先来看do while的实现:下面是 ...
- Go 语言循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句. 以下为大多编程语言循环程序的流程图: Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执 ...
随机推荐
- 微信小程序环境搭建
第一步 IDE下载 Win版链接: https://pan.baidu.com/s/1gfAy18n 第二步 破解 最新下载链接: https://pan.baidu.com/s/1gfAy18n ...
- iis 目录枚举文件枚举解决方案
1.关闭windows的8.3格式功能. 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改NtfsD ...
- office2010安装出错,windows installer服务不能更新一个或多个受保护的windows文件
转自:http://www.08lr.cn/article/1985.html office2010安装过程中出现如下图错误:windows installer 服务不能更新一个或多个受保护的wind ...
- 单选,复选操作div,显示隐藏
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- 用C++写一个简单的服务器和客户端
我们将创建一个服务器节点add_two_ints_server,它将会收到两个整数,并且返回它们的和.切换目录到之前建立的beginner_tutorials包下: cd ~/catkin_ws/sr ...
- PHP中include和require的区别
include和require的区别,其实两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出. 根据测试,win32 ...
- Android中计算时间差的实现方法
今天为“至简天气”增加了一项功能:在启动时根据上次更新数据的时间判断是否有必要更新数据,因为 weather.com.cn 的实况数据貌似是25分钟才会刷新一次,只有在据上次更新的时间达25分钟以上才 ...
- ASP.NET MVC 项目分离
ASP.NET MVC 项目分离 说明: ZRT.Web 是前台网站,目录[D:\ZRT.Web\] ZRT.Admin 是后台管理,目录[D:\ZRT.Web\Applications\Admin\ ...
- Chrome设计文档-多进程架构
chromium multi-process architecture 本文档从high-level的角度描述Chromium的多进程架构. 问题 要构建一个决不崩溃或挂起的渲染引擎几乎是不可能的.同 ...
- 8_Times_Tables
8 // // ViewController.swift // Times Tables // // Created by ZC on 16/1/9. // Copyright © 2016年 ZC. ...