黑马程序员 c语言-----循环与函数学习
2014-04-02 22:50
309 查看
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a
href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
一. while基本概念
>.当要做一些重复操作的时候就可以用循环结构
while (条件表达式)
{
语句;
...
}
>.特点:当条件表达式为真就会执行while后面大括号中的内容,执行完毕再次判断条件表达式是否为真,如果为真又执行while后面大括号中的内容,以此类推,直到条件不满足为止
>. break 可以用在switch语句中,也可以用着循环语句中
当break在switch中的时候,是用来结束switch语句
当break在循环语句中的时候,是用来结束循环语句
1,累加思想原理:通过循环的形式进行累加操作,定义变量记录每次变化后的结果
实例:
int sum =
0;//定义变量记录每次变化后的结果
int count =1;
while (count <= number) {
printf("%d + %d\n", sum, count);
sum = sum + count;
count++;
}
2计数器思想:通过循环的形式进行计数操作, 通过变量记录每次变化的值
实例:
int number =1;
int count =0;
while (number <=100) {
if (0 == (number %7))
{
printf("7的倍数\n");
count++;//计数器思想
}
printf("count = %d\n", number);
number++;
}
应用场景:当以后要求在什么什么中里面有多少个什么的时候,立刻想到计数器思想
注意点:
1.C语言中任何数值都有真假性, 死循环
while (-11)
{
printf("打飞机\n");
}
2.while也可以省略大括号, 当while省略大括号的时候,条件满足会执行后面的第一条语句,也就是说省略大括号的时候后面的第一条语句和while是一个整体 int a = 0;
while (a < 5)
printf("%d\n", a++);
printf("打飞机\n");
3.和if一样,想在while后面定义变量必须加上大括号,否则变量作用域混乱
while (1)
int a = 10;
printf("a = %d\n", a);
if (1)
int a = 10;
printf("a = %d\n", a);
4.分号问题,死循环,因为count的值从来没有改变过
int count = 0;
while (count < 5);
{
printf("打飞机\n");
}
5.最简单的死循环
while(1);
二:[b]do while[/b]
[b]格式:
[/b] do
{
语句;
...
}while (条件表达式);
注意:一定不要忘记写这个分号,分号代表着dowhile循环结束
while/dowhile区别:
while会先判断条件是否满足,如果不满足就不会执行循环体
do while 无论条件是否满足都会执行一次循环体
while和dowhile是可以互换,能用while实现的都能用dowhile实现,
但是在日常开发中一般情况能用while就用while
只有当某些语句无论条件是否满足都需要执行一次的时候才用dowhile
三:for基本概念格式:
for (初始化表达式; 条件表达式; 循环后操作表达式)
{
语句;
...
}
条件表达式:条件表达式和while循环一样,只要条件满足就会执行循环体
初始化表达式: 在整个循环过程中只会执行一次
循环后操作表达式:当执行完循环体之后就会执行循环后操作表达式
1.执行"初始化表达式"
2.判断"条件表达式"
3.执行循环体(条件为真)
4.执行"循环后操作表达式"
5.判断"条件表达式"
6.重复4/5步
在for循环初始化表达式中定义的变量只能在for循环中使用
实例:
for (int bulletCount =3; bulletCount >0;
bulletCount--)
{
printf("发射子弹 %d\n", bulletCount);
}
什么情况下用for,什么情况下用while
>如果变量只是为了控制循环的次数,循环完毕之后不再使用用for循环
>如果变量在循环执行完毕之后还需要使用,就用while
1.for循环也可以省略大括号,省略大括号的时候当条件满足会执行后面的第一条语句
例如:
for (int i= 0; i < 3; i++)
printf("打飞机\n");
printf("xxoo\n");
2.和if while一样作用域混乱
[b] 例如:
[/b]
if (1)
int a = 10;
while (1)
int b = 10;
for (int i = 0; i < 3; i++)
int c = 10;
3.分号问题,但是一般情况下不会造成死循环
[b] 例如:
[/b]
for (int i = 0; i < 3; i++);
{
代码块
printf("打飞机\n");
} 4.死循环
注意如果for循环中条件表达式什么都不写,默认就是真
for (;;);
printf("打飞机\n");
5.作用域问题,
[b] 例如:
[/b]
for (int i = 0; i < 3; k++)
{
int k = 10; //只在大括号中有效
printf("k = %d\n", k);
}
int a = 10;
{
int a = 20;
printf("a = %d\n", a);
}
两个i的作用域不一样
for (int i = 0; i < 3; i++)
{
int i = 5;
printf("i = %d\n", i);
}
四:嵌套使用
while (条件表达式)
{
while (条件表达式)
{
}
}
do
{
while (条件表达式)
{
}
}while(条件表达式);
for (;;)
{
while (条件表达式)
{
}
}
for (;;)
{
for (;;)
{ }
}嵌套循环例子:
*
***
*****规律:
尖尖朝上:改变内循环的条件,让条件随着外循环的初始化值变化
尖尖朝下:改变内循环的初始化表达式,让初始化表达式随着外循环的初始化值变化
int count = 3;
外循环控制行数
for (int i = 0; i < 3; i++) {
内循环控制列数,(内循环执行完代表输出了一行)
for (int j = 0; j < count; j++) {
printf("*");
}
count--;//2 1
printf("\n");
}
int count = 0;
外循环控制行数
for (int i = 0; i < 3; i++) {
内循环控制列数,(内循环执行完代表输出了一行)
for (int j = count; j < 3; j++) {
printf("*");
}
count++;//1 2
printf("\n");
}
五:函数基本概念
初学者定义函数,首要要有三个确定
1.确定函数名称, 根据函数的功能确定
规范:26个字母 数字 下划线 组成
不能以数字开头
2.确定形参列表(形参类型 形参名称),根据用户调用函数的时候是否需要传入一些补助的值来确定
3.确定返回值类型,根据函数执行完是否需要返回值给函数调用者
return的作用
1.返回值给调用者
2.结束函数
函数的定义格式:
返回值类型 函数名(形参列表)
{
函数体;
功能代码;
}
C语言对功能的定义是通过函数来体现的
函数:具有特定功能的程序段, C语言程序是由函数组成的
定义函数的目的:将一段特定的功能封装起来方便复用
函数的规则:单一性(在写函数的时候尽量保证函数的单一性, 提高代码的扩展性)
直接写在main函数中的弊端:
1.如果功能发生变化,会影响到其他的地方
2.重复代码过多,又臭又长
>.封装之后的好处:
1.简化了代码,提高了代码的复用性
2.功能发生变化,不会影响到其他的地
调用函数的时候,传入的参数我们称之为实际参数简称实参
注意点:调用函数的时候传入的实参个数必须和形参个数相同
当基本数据类型作为函数参数传递的时候是值传递(拷贝)
return 0 代表程序正常结束, 如果不是0就代表异常结束
.h 文件 我们称之为头文件
头文件是专门用来保存函数的声明
.h文件生下来就是用来被拷贝, .h文件不参与编译
递归:
递归自己搞自己
1.重复执行的操作
2.约束条件
能用循环实现的功能,用递归都可以实现
递归就是自己搞自己,性能差
注意:递归一定要有一个明确的结束条件,否则会造成死循环
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流!
----------------------
href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
一. while基本概念
>.当要做一些重复操作的时候就可以用循环结构
while (条件表达式)
{
语句;
...
}
>.特点:当条件表达式为真就会执行while后面大括号中的内容,执行完毕再次判断条件表达式是否为真,如果为真又执行while后面大括号中的内容,以此类推,直到条件不满足为止
>. break 可以用在switch语句中,也可以用着循环语句中
当break在switch中的时候,是用来结束switch语句
当break在循环语句中的时候,是用来结束循环语句
1,累加思想原理:通过循环的形式进行累加操作,定义变量记录每次变化后的结果
实例:
int sum =
0;//定义变量记录每次变化后的结果
int count =1;
while (count <= number) {
printf("%d + %d\n", sum, count);
sum = sum + count;
count++;
}
2计数器思想:通过循环的形式进行计数操作, 通过变量记录每次变化的值
实例:
int number =1;
int count =0;
while (number <=100) {
if (0 == (number %7))
{
printf("7的倍数\n");
count++;//计数器思想
}
printf("count = %d\n", number);
number++;
}
应用场景:当以后要求在什么什么中里面有多少个什么的时候,立刻想到计数器思想
注意点:
1.C语言中任何数值都有真假性, 死循环
while (-11)
{
printf("打飞机\n");
}
2.while也可以省略大括号, 当while省略大括号的时候,条件满足会执行后面的第一条语句,也就是说省略大括号的时候后面的第一条语句和while是一个整体 int a = 0;
while (a < 5)
printf("%d\n", a++);
printf("打飞机\n");
3.和if一样,想在while后面定义变量必须加上大括号,否则变量作用域混乱
while (1)
int a = 10;
printf("a = %d\n", a);
if (1)
int a = 10;
printf("a = %d\n", a);
4.分号问题,死循环,因为count的值从来没有改变过
int count = 0;
while (count < 5);
{
printf("打飞机\n");
}
5.最简单的死循环
while(1);
二:[b]do while[/b]
[b]格式:
[/b] do
{
语句;
...
}while (条件表达式);
注意:一定不要忘记写这个分号,分号代表着dowhile循环结束
while/dowhile区别:
while会先判断条件是否满足,如果不满足就不会执行循环体
do while 无论条件是否满足都会执行一次循环体
while和dowhile是可以互换,能用while实现的都能用dowhile实现,
但是在日常开发中一般情况能用while就用while
只有当某些语句无论条件是否满足都需要执行一次的时候才用dowhile
三:for基本概念格式:
for (初始化表达式; 条件表达式; 循环后操作表达式)
{
语句;
...
}
条件表达式:条件表达式和while循环一样,只要条件满足就会执行循环体
初始化表达式: 在整个循环过程中只会执行一次
循环后操作表达式:当执行完循环体之后就会执行循环后操作表达式
1.执行"初始化表达式"
2.判断"条件表达式"
3.执行循环体(条件为真)
4.执行"循环后操作表达式"
5.判断"条件表达式"
6.重复4/5步
在for循环初始化表达式中定义的变量只能在for循环中使用
实例:
for (int bulletCount =3; bulletCount >0;
bulletCount--)
{
printf("发射子弹 %d\n", bulletCount);
}
什么情况下用for,什么情况下用while
>如果变量只是为了控制循环的次数,循环完毕之后不再使用用for循环
>如果变量在循环执行完毕之后还需要使用,就用while
1.for循环也可以省略大括号,省略大括号的时候当条件满足会执行后面的第一条语句
例如:
for (int i= 0; i < 3; i++)
printf("打飞机\n");
printf("xxoo\n");
2.和if while一样作用域混乱
[b] 例如:
[/b]
if (1)
int a = 10;
while (1)
int b = 10;
for (int i = 0; i < 3; i++)
int c = 10;
3.分号问题,但是一般情况下不会造成死循环
[b] 例如:
[/b]
for (int i = 0; i < 3; i++);
{
代码块
printf("打飞机\n");
} 4.死循环
注意如果for循环中条件表达式什么都不写,默认就是真
for (;;);
printf("打飞机\n");
5.作用域问题,
[b] 例如:
[/b]
for (int i = 0; i < 3; k++)
{
int k = 10; //只在大括号中有效
printf("k = %d\n", k);
}
int a = 10;
{
int a = 20;
printf("a = %d\n", a);
}
两个i的作用域不一样
for (int i = 0; i < 3; i++)
{
int i = 5;
printf("i = %d\n", i);
}
四:嵌套使用
while (条件表达式)
{
while (条件表达式)
{
}
}
do
{
while (条件表达式)
{
}
}while(条件表达式);
for (;;)
{
while (条件表达式)
{
}
}
for (;;)
{
for (;;)
{ }
}嵌套循环例子:
*
***
*****规律:
尖尖朝上:改变内循环的条件,让条件随着外循环的初始化值变化
尖尖朝下:改变内循环的初始化表达式,让初始化表达式随着外循环的初始化值变化
int count = 3;
外循环控制行数
for (int i = 0; i < 3; i++) {
内循环控制列数,(内循环执行完代表输出了一行)
for (int j = 0; j < count; j++) {
printf("*");
}
count--;//2 1
printf("\n");
}
int count = 0;
外循环控制行数
for (int i = 0; i < 3; i++) {
内循环控制列数,(内循环执行完代表输出了一行)
for (int j = count; j < 3; j++) {
printf("*");
}
count++;//1 2
printf("\n");
}
五:函数基本概念
初学者定义函数,首要要有三个确定
1.确定函数名称, 根据函数的功能确定
规范:26个字母 数字 下划线 组成
不能以数字开头
2.确定形参列表(形参类型 形参名称),根据用户调用函数的时候是否需要传入一些补助的值来确定
3.确定返回值类型,根据函数执行完是否需要返回值给函数调用者
return的作用
1.返回值给调用者
2.结束函数
函数的定义格式:
返回值类型 函数名(形参列表)
{
函数体;
功能代码;
}
C语言对功能的定义是通过函数来体现的
函数:具有特定功能的程序段, C语言程序是由函数组成的
定义函数的目的:将一段特定的功能封装起来方便复用
函数的规则:单一性(在写函数的时候尽量保证函数的单一性, 提高代码的扩展性)
直接写在main函数中的弊端:
1.如果功能发生变化,会影响到其他的地方
2.重复代码过多,又臭又长
>.封装之后的好处:
1.简化了代码,提高了代码的复用性
2.功能发生变化,不会影响到其他的地
调用函数的时候,传入的参数我们称之为实际参数简称实参
注意点:调用函数的时候传入的实参个数必须和形参个数相同
当基本数据类型作为函数参数传递的时候是值传递(拷贝)
return 0 代表程序正常结束, 如果不是0就代表异常结束
.h 文件 我们称之为头文件
头文件是专门用来保存函数的声明
.h文件生下来就是用来被拷贝, .h文件不参与编译
递归:
递归自己搞自己
1.重复执行的操作
2.约束条件
能用循环实现的功能,用递归都可以实现
递归就是自己搞自己,性能差
注意:递归一定要有一个明确的结束条件,否则会造成死循环
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流!
----------------------
相关文章推荐
- [黑马程序员]09[C语言]循环控制语句部分学习笔记总结
- 黑马程序员--c语言:选择结构、循环结构、函数
- 黑马程序员——零基础学习iOS开发——04 c语言:基本运算、流程控制、函数
- 黑马程序员----C语言学习笔记之循环结构介绍和用法举例
- 黑马程序员——c语言学习---循环
- 【黑马程序员】C语言学习笔记之函数(八)
- 黑马程序员之IOS学习总结——03C语言中循环结构
- 【黑马程序员】iOS学习之路——C语言之函数和数组
- 黑马程序员——ios基础---C语言:循环结构、函数
- 黑马程序员----C语言学习笔记之函数
- 黑马程序员--循环结构的学习和练习、函数
- 黑马程序员 -- IOS C语言 函数
- [黑马程序员]08[C语言]数组部分学习总结
- 【学习笔记】【C语言】static和extern对函数的作用
- c语言学习之基础知识点介绍(十九):内存操作函数
- 黑马程序员-IOS学习笔记-C语言基础循环结构
- 黑马程序员--学习C语言文件操作
- 黑马程序员 学习日记(二)-指针、函数
- 学习C语言的函数
- 学习C语言带参数的函数