c语言学习之基础知识点介绍(七):循环结构
本节主要介绍循环结构
一、while循环
/*
语法:
while(表达式){
//循环体;
}
注意:循环变量、循环条件和循环控制语句三者缺一不可。
例如:
*/
int num = ; //循环变量
while(num < ){ //循环条件
printf(" %d",num):
num++; //控制循环结束语句
}
//例如:计算1到100的和
int sum = ;
int i=;
while(i<=){
sum+=i;
i++;
}
printf("sum= %d",sum);
/**
注意:
1、避免死循环,避免永真或永假。永真死循环,永假不执行,毫无意义。
2、while循环后面千万不要加分号。
3、结束循环的语句不要忘记写。
4、和if一样,大括号可以省略,只能控制离它最近的一条语句,并且这条语句不能是声明变量的语句。
5、在循环内声明的变量,不能在循环外使用。
/
下面扩展一个知识点,首先看一个问题,让用户输入n个数字,然后在这n个数字中,判断出最大的数字,最小的数字(对于有编程基础的肯定有很多种方式去解决这个问题)。
int i = ;
int max = INT_32MIN;//首先我们要有一个我们认为最大的数字,这个数字必须极限小,以保证用户输入的每一个数字都比这个数字大。
int min = INT_32MAX;//首先我们要有一个我们认为最小的数字,这个数字必须极限大,以保证用户输入的每一个数字都比这个数字小。
while(i <= ){
printf("请输入第%d个数字:");
int num ;
scanf("%d",num);
if(num>max){
max=num;
}
if(num<min){
min=num;
}
}
printf("最大的数字为:%d \n最小的数字为:%d:\n",max,min);
当然还有别的方法,就是把我们认为最大/最小的数字设置为用户第一次输入的数字,然后在循环判断。
二、do-while循环
/*
语法:
do{
循环体;
}while(表达式);
注意:while后面一定要加分号。
执行过程:先执行循环体,在执行循环体,判断是否执行。
循环体至少会执行一次。
*/
//例如:
int num = ;
do{
printf("%d",num)
num++;
}while(num>=&&num<);
三、for循环
/*
语法:
for(表达式1;表达式2;表达式3){
//循环体;
}
注意:1、先执行表达式1,跳转到2;
2、判断表达式2是否为真,如果为真,跳转到3,如果为假,跳转到5。
3、执行循环体,执行完毕,跳转到4。
4、执行表达式3,执行完毕跳转到2。
5、跳出循环。
其他格式:
//死循环
for(;;){
// 循环体
} for(;表达式2;表达式3){
//循环体;
}
//所有的表达式都可以省略,但是可能回出现死循环,需要注意。
*/
//例如:
for(int i = ; i<;i++){
printf("%d",i);
}
//输出0到9。
怎么用for循环打出100到999之间的水仙花数呢?(水仙花数:百位的立方+十位的立方+个位的立方=这个数的本身)。
/*
取百位、十位、个位的数字分别:
百位 = 原数字/100;
十位 = 原数字/10%10;
个位 = 原数字%10;
这样能分别取到相对应的数字。
下面开始打印。
*/
for (int i = ;i<=;i++){
int bw = i/;
int sw = i/%;
int gw = i%;
if(bw*bw*bw + sw*sw*sw+gw*gw*gw == i){
printf("%d \n" i);
}
}
for循环可以嵌套,看如下实例:
//打印九九乘法表
for(int i = ; i<= ; i++){
for(int j = ; j<=i ; j++){
printf(" %d × %d = %d ",i,j,i*j);
}
printf("\n");
} //打印等腰三角形
for(int i = ;i= ;i++){
for(int j = ;j<=-i;j++) //这里写的5是行数
printf(" ");
for (int k= ;k <= i * - ; k++)
printf("*");
printf("\n");
}
//注意:循环的嵌套一般是用来控制平面,外层循环控制行数,内层循环控制列数。
如果想跳出当前的循环,使用break关键字,例如:
//得到1到10之间的第一个奇数
for(int i = ; i<=,i++){
if(i%==){
printf("%d",i);
break;
}
}
如果想结束本次循环,继续下次循环,用contiune关键字,例如:
//打印出1到10之间的偶数
for(int i = ;i<=;i++){
if(i%==){
continue;
}
printf("%d",i);
}
c语言学习之基础知识点介绍(七):循环结构的更多相关文章
- c语言学习之基础知识点介绍(三):scanf函数
本节继续介绍c语言的基础知识点. scanf函数:用来接收用户输入的数据. 语法:scanf("格式化控制符",地址列表); 取地址要用到取地址符:&(shift+7) 例 ...
- c语言学习之基础知识点介绍(二):格式化控制符和变量的补充
上节简单介绍了c语言中的一些基础知识点,本节将对之前介绍的不够详细的知识点进行补充. 格式化控制符的消息介绍: %d的其他控制符: 1.%md:m代表这个整数位占用多少位,m是一个整数.实际数字不足的 ...
- c语言学习之基础知识点介绍(一):输出语句和变量简单介绍
本系列是为了学习ios做准备的,也能作为c语言入门的教程看看. c语言的程序结构: 1.顺序结构:自上而下依次执行. 2.分支结构:程序有选择的执行某段代码或者不执行某段代码. 3.循环结构:程序循环 ...
- oc语言学习之基础知识点介绍(二):类和对象的进一步介绍
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...
- c语言学习之基础知识点介绍(四):算术运算符和逗号表达式
本节主要介绍c语言中运算符. 运算符主要分为四类: 1.算术运算符 加(+),减(-),乘(*),除(/),取余(%,两数相除,得到余数) 2.关系运算符 3.逻辑运算符 4.换位运算符 下面将依次介 ...
- oc语言学习之基础知识点介绍(五):OC进阶
一.点语法介绍 /* 以前封装后,要给属性赋值,必须调用方法 这样做,有两个缺点: 1.代码量多,调用方法要写的东西多. 2.看起来并不像是给属性赋值,也不像取值. 我们用点语法就可以更好的解决! 点 ...
- oc语言学习之基础知识点介绍(四):方法的重写、多态以及self、super的介绍
一.方法重写 /* 重写:当子类继承了父类的方法时,如果觉得父类的方法不适合,那么可以对这个方法进行重新实现,那么这个就重写. 注意:也就是说,一定只能发生在父类和子类关系中. 然后是子类重新实现父类 ...
- c语言学习之基础知识点介绍(十四):指针的进阶
一.指针的加.减法运算 /* 1.加法运算 1).可以跟整数进行加法运算,得到的还是一个地址 公式: 地址 + 1 = 地址 + 1 * 类型所占的字节数 地址 + n = 地址 + n * 类型所占 ...
- c语言学习之基础知识点介绍(十三):枚举的介绍和使用
一.枚举的介绍 /* 枚举:限制的待选项. 语法: enum 枚举名{ 选项1, 选项2, 选项3, ........ 选项n }; 注意:枚举中,选项之间用 , 隔开,最后一个不用加 , :并且枚举 ...
随机推荐
- C# 验证码识别基础方法及源码
先说说写这个的背景 最近有朋友在搞一个东西,已经做的挺不错了,最后想再完美一点,于是乎就提议把这种验证码给K.O.了,于是乎就K.O.了这个验证码.达到单个图片识别时间小于200ms,500个样本人工 ...
- Hay Points
Hay Points TimeLimit: 1 Second MemoryLimit: 32 Megabyte Totalsubmit: 1022 Accepted: 602 Descript ...
- python导入上级目录中的模块
python导入同级别模块很方便: import xxx 要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件 from dirname import xxx 要导入上级目录,可以 ...
- Python生成器 yield
迭代器与list相比较,就for in句型循环拿数据而言: 用list写很简洁,但如果list数据过大,会很消耗资源. 用iteration 迭代器写,则不会消耗那么多资源.他会随用随取,用一个拿一个 ...
- 作品第一课----获取批量checkbox选中的值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- java spring一个类型split的方法
/** * Take a String which is a delimited list and convert it to a String array. * <p>A single ...
- Servlet实现数据库查询(MyEclipse10,Tomcat7.0,JDK1.7,)——Java Web练习(三)
1.MyEclipse | New Web Project :TestServlet01,修改index.jsp的代码: <%@ page language="java" i ...
- java利用commons-email发送邮件并进行封装
本例中利用commons-email发送邮件并进行封装,支持html内容和附件:Commons Email是Apache的Commons子项目下的一个邮件客户端组件,它是基于JavaMail的,大大简 ...
- MD5是什么,怎么用着怪怪的
写作目的 通常我们在使用加密算法时,都是直接调用一个方法,比如Base64,直接把待加密的字符串给加密好了.对于某些使用公私钥的算法,最多再传入一段公钥即可.但是在使用MD5算法的时候,总是需要用到一 ...
- 驱动lx4f120h,头文件配置,没有完全吃透,望指点
来了块开发板,没接触过,希望能驱动起来,就首先试一下驱动LED,没想到刚开始建好工程问题就来了 使用GPIO驱动,首先想到的是关于GPIO的头文件gpio.h,事实上这个还不够,还需要设置一下系统的配 ...