本节主要介绍循环结构

一、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语言学习之基础知识点介绍(七):循环结构的更多相关文章

  1. c语言学习之基础知识点介绍(三):scanf函数

    本节继续介绍c语言的基础知识点. scanf函数:用来接收用户输入的数据. 语法:scanf("格式化控制符",地址列表); 取地址要用到取地址符:&(shift+7) 例 ...

  2. c语言学习之基础知识点介绍(二):格式化控制符和变量的补充

    上节简单介绍了c语言中的一些基础知识点,本节将对之前介绍的不够详细的知识点进行补充. 格式化控制符的消息介绍: %d的其他控制符: 1.%md:m代表这个整数位占用多少位,m是一个整数.实际数字不足的 ...

  3. c语言学习之基础知识点介绍(一):输出语句和变量简单介绍

    本系列是为了学习ios做准备的,也能作为c语言入门的教程看看. c语言的程序结构: 1.顺序结构:自上而下依次执行. 2.分支结构:程序有选择的执行某段代码或者不执行某段代码. 3.循环结构:程序循环 ...

  4. oc语言学习之基础知识点介绍(二):类和对象的进一步介绍

    一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...

  5. c语言学习之基础知识点介绍(四):算术运算符和逗号表达式

    本节主要介绍c语言中运算符. 运算符主要分为四类: 1.算术运算符 加(+),减(-),乘(*),除(/),取余(%,两数相除,得到余数) 2.关系运算符 3.逻辑运算符 4.换位运算符 下面将依次介 ...

  6. oc语言学习之基础知识点介绍(五):OC进阶

    一.点语法介绍 /* 以前封装后,要给属性赋值,必须调用方法 这样做,有两个缺点: 1.代码量多,调用方法要写的东西多. 2.看起来并不像是给属性赋值,也不像取值. 我们用点语法就可以更好的解决! 点 ...

  7. oc语言学习之基础知识点介绍(四):方法的重写、多态以及self、super的介绍

    一.方法重写 /* 重写:当子类继承了父类的方法时,如果觉得父类的方法不适合,那么可以对这个方法进行重新实现,那么这个就重写. 注意:也就是说,一定只能发生在父类和子类关系中. 然后是子类重新实现父类 ...

  8. c语言学习之基础知识点介绍(十四):指针的进阶

    一.指针的加.减法运算 /* 1.加法运算 1).可以跟整数进行加法运算,得到的还是一个地址 公式: 地址 + 1 = 地址 + 1 * 类型所占的字节数 地址 + n = 地址 + n * 类型所占 ...

  9. c语言学习之基础知识点介绍(十三):枚举的介绍和使用

    一.枚举的介绍 /* 枚举:限制的待选项. 语法: enum 枚举名{ 选项1, 选项2, 选项3, ........ 选项n }; 注意:枚举中,选项之间用 , 隔开,最后一个不用加 , :并且枚举 ...

随机推荐

  1. 【转】Windows7 下安装 JDK 7 时版本冲突问题解决

    原文网址:http://wxl24life.iteye.com/blog/1966058 自己电脑上一直用的 JDK 版本是 1.6,今天决定更新到 1.7,在安装 JDK 1.7 后,控制台输入 j ...

  2. VMware设置虚拟机,并配置远程连接桌面

    现在需要使用VMware虚拟出几个window7的机器,用来跑自动化测试. 在配置虚拟机的时候遇到了几个问题: 问题1:虚拟机无法与外界机器通信.(可ping通过). 问题2:外界机器无法链接虚拟机的 ...

  3. HDOJ/HDU 1328 IBM Minus One(水题一个,试试手)

    Problem Description You may have heard of the book '2001 - A Space Odyssey' by Arthur C. Clarke, or ...

  4. Keepass TAN 记录的使用

    之前一直不知道 Keepass 软件中这个“TAN”是做什么用的,今天看了帮助文档,然后通过维基百科,有了一些大致的了解. 简单来说,一个 TAN 记录用于某些网站增加安全操作使用的.常规下只要用户名 ...

  5. JavaScript高级程序设计33.pdf

    操作样式表 CSSStyleSheet类型表示的是样式表包括通过<link>元素包含的样式表和在<style>元素中定义的样式表,前面提到过这两个元素本身分别是由HTMLLin ...

  6. HW4.30

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. ubuntu 交换ctrl与caps lock 键

    The relevant option is no longer available in the settings menu in Ubuntu 13.10; this has been repor ...

  8. windows下mysql 控制台操作

    windows mysql 控制台操作 1.首先打开cmd进入dos窗口 2.切换至目录: F: cd PHPnow-1.5.6\MySQL-5.0.90\bin 3.进入mysql: mysql - ...

  9. coco2dx 精灵类

    CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite *bg = CCSprite::create("H ...

  10. 数字集成电路设计-8-一个简单sobel图像边缘检测加速器的设计,实现,仿真与综合

    引言 图像视频处理等多媒体领域是FPGA应用的最主要的方面之一,边缘检测是图像处理和计算机视觉中的基本问题,所以也是最常用的,随着数据量的不断增加以及对实时性的要求,一般软件已经不能满足实际需要,这时 ...