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 循环 重复执 ...
随机推荐
- Eclipse无法识别(手机)设备的解决方案
遇到问题 开始学习android一个多月了,用Eclipse开发,用android手机调试.之前一直好好的,突然Eclipse无法识别手机设备了.纠结了好久,找了各种解决方法,弄了一晚上终于解决问题了 ...
- 从零开始学习UNITY3D(GUI篇 GUI.Window)
unity3d里面,也是包含window窗体的,下面看一下GUI.Window方法的详情 下面我们用代码实现一个通过开关显示窗体的隐藏和显示的功能,代码如下: public class windows ...
- oracle数据库获取指定表的列的相关信息
1.很多时候我们需要从数据库中获取指定表的所有列的相关属性,如 name,commens,datatype,datalength,pk等.下面就是制定的语句. select c.TABLE_NAME ...
- ViewPager引导
1.首先要导入android-support.v4.jar第三方工具包 2.activity_guid.xml <RelativeLayout xmlns:android="http: ...
- XX cannot be resolved to a type
http://www.cnblogs.com/xuxm2007/archive/2011/10/20/2219104.html 我是project->clean...即可 原理:将工程中的.cl ...
- 53个Oracle语句优化规则详解(转)
Oracle sql 性能优化调整 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种:a. RULE (基于规则) b. COST (基于成本) c. CHOOSE ...
- jacksons转换大小写处理
import com.fasterxml.jackson.databind.ObjectMapper; 1.注意导入的objectMapper包一致 另:jackson的注解大全 https://gi ...
- Hadoop学习之Mapreduce执行过程详解
一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...
- 关于scala和java 在maven项目中混编的问题
1.需要添加scala 相关maven配置: <properties> <scala.version>2.10.1</scala.version> <slf4 ...
- Android 实现GIF播放(解码)
实现原理很简单,先把GIF动画解码成多张Bitmap图片,然后放到AnimationDrawable里面去逐一播放即可. GifHelper代码: package com.android.view; ...