目录:

一、for循环

二、break,continue

三、循环嵌套

四、while

五、do while

六、三个循环的对比

七、空语句

回到顶部

一、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语言循环的更多相关文章

  1. [08 Go语言基础-for循环]

    [08 Go语言基础-for循环] 循环 循环语句是用来重复执行某一段代码. for 是 Go 语言唯一的循环语句.Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环 ...

  2. Go语言循环判断的使用~

    Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 下图展示了程序语言中条件语句的结 ...

  3. R语言 循环

    R语言循环 可能有一种情况,当你需要执行一段代码几次. 通常,顺序执行语句. 首先执行函数中的第一个语句,然后执行第二个语句,依此类推. 编程语言提供允许更复杂的执行路径的各种控制结构. 循环语句允许 ...

  4. 08. Go 语言包(package)

    Go 语言包(package) Go 语言的源码复用建立在包(package)基础之上.Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,必须同 ...

  5. C语言-循环结构及break、continue

    循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...

  6. go语言循环语句 for

    Go语言中的循环语句只支持for关键字,而不支持while和do-while结构. sum := 0 for i := 0; i < 10; i++ { sum += i } 无限循环的写法: ...

  7. C语言循环的嵌套

    注:参考网络资源拟制,如雷同请见谅循环的嵌套:一个循环体语句中又包含另一个循环语句,称为循环嵌套.嵌套注意事项:1.使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同.2.循环嵌套结构的书写,最 ...

  8. C语言循环的实现

    在C语言中采用3中语法来实现循环,它们分别是while.for.do while,本文将分别说明这三种循环的实现,并对它们的运行效率进行比较. do while 首先来看do while的实现:下面是 ...

  9. Go 语言循环语句

    在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句. 以下为大多编程语言循环程序的流程图: Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执 ...

随机推荐

  1. SPOJ QTREE4 lct

    题目链接 这个题已经处于花式tle了,改版后的spoj更慢了.. tle的话就多交几把... #include <iostream> #include <fstream> #i ...

  2. SQL Server索引进阶:第十二级,创建,修改,删除

    在第十级中我们看到了索引的内部结构,在第十一级中我们看到了平衡树结构潜在的负面影响:索引碎片.有了索引内部结构的知识,我们可以检查在执行数据定义语句和数据操作语句的时候,都发生了什么.在本级中我们介绍 ...

  3. JavaScript之向文档中添加元素和内容的方法

    一.非DOM方法添加 1.document.write() <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...

  4. js判断年龄是否在0-100之间

    //判断年龄 $('#info_age').change(function(){ var _val = $(this).val(); -]+$/.test( _val ))||_val< || ...

  5. BZOJ 3261: 最大异或和( 可持久化trie )

    搞成前缀和然后就可以很方便地用可持久化trie维护了.时间复杂度O((N+M)*25) -------------------------------------------------------- ...

  6. Android 程序申请权限小知识点

    在Google Play 应用商店,显示至少支持设备的数量时候会用到权限数量.其他地方用处不大. Android系统提供为程序提供了权限申请,即在manifest中使用uses-permission来 ...

  7. uva 10779 Collectors Problem 网络流

    链接 一共有n个人, m种收藏品, 每个人拥有的收藏品的种类和个数都是不相同的. 假设2-n这些人都只和1互相交换, 比例是1:1, 并且, 2-n这些人, 只换自己现在没有的, 如果他现在有第二种, ...

  8. win7本地搭建git ssh服务器

    本来是想在gogs上用ssh的,结果弄了好几次还没整明白,希望等他们的更新内置吧. 但是,意外收获,还是成功搭建了本地ssh服务器,只是没有和gogs成功关联. 简要记录一下: 主要软件: msysg ...

  9. 四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现

    原文:四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现 虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们 ...

  10. 让Java的反射跑快点

    由于反射涉及动态解析的类型,某些Java虚拟机的优化不能被执行,所以导致了一定的性能的问题,特别是在JDK6以前特别严重,有时甚至达到数百倍,但是在JDK6以后,据说性能差别就不是哪么大了,JDK对此 ...