黑马程序员----C语言学习笔记之循环结构介绍和用法举例
来源:互联网 发布:java麻将游戏代码算法 编辑:程序博客网 时间:2024/04/30 05:56
------Java培训、Android培训、iOS培训、.Net培训--------
1.5 while循环使用陷阱--死循环
1.5.1
例如: int a = 5;
此处没有能够让循环控制条件为假的语句,因此a > 0一直为真,进入了死循环
1.5.2 空语句死循环
例如 while(1);
1.5.3 不要造成死循环,会严重影响到系统性能,甚至会占尽内存导致机器挂掉
1.6 控制游戏方向
1.7 while循环 猜数字游戏
1.8 while循环使用时注意事项
1.8.1 while循环表达式问题
如:
1.8.2 死循环:任何数值都有真假性,
这个也是死循环,因为-1是非零的
1.8.3 当一个变量与一个常量惊醒 == 或 != 的时候,通常把常量写在前面,避免少写一个等号,变成了赋值运算,导致死循环
如 int num = 4;
1.8.4如果while循环只有一句话,此时可以省略大括号
如:while(a > 0)printf("HH");
2.do .... while循环的介绍和使用
2.1 do ...while循环的基本格式
2.2 while 与do...while的区别
2.2.1 当条件第一次不为假的时候,两者无区别
2.2.2 while是当型循环:当条件满足的时候,再去执行循环体
do... while是直到循环:先执行循环体,然后判断条件,直到条件为假就结束
例:
3.for循环的介绍与使用
3.1 构成for循环的三个条件:
1)循环控制条件
2)循环体
3)能够让循环体结束的语句(递增,递减等)
以上,i < 10 是循环控制条件
i++ 是能够让循环体结束的语句
执行顺序:
1)先执行A初始化变量i*,A只执行一次。
2)再判断B
如果为真,a.执行循环体,
b.再执行C
c.再判断B,如果为真。。。。
如果为假,退出循环体
3.3 for循环的其他形式
3.3.1 括号内的三个表达式都可以省略,或者省略一部分
例如:
3.4 for 循环的嵌套
3.4.1 嵌套循环在一般情况下,只有2两,不会超出3层
3.4.2 嵌套举例例子
3.4.2.1 打印5x5的*号矩阵
打印结果:* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
3.4.2.2 打印5x5的*号 倒上三角矩阵
* * *
* *
*
3.4.2.3 打印正三角
打印结果:
*
* *
* * *
* * * *
* * * * *
3.4.2.4 打印九九乘法表
打印结果:
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
4.break关键字和break语句
4.1 break和continue语句都可以用在循环中,用来跳出循环,即结束循环,break语句还可以用在switch语句中
例如 :
5.continue关键字和continue语句
5.1 continue是结束本次循环,继续下一次循环
continue语句的作用是跳过循环体中剩余的语句而继续下一次循环,continue语句只在for,while,do.. while循环中使用。经常是与if语句结合。
例如:
1、循环结构概述
1.1 概述
循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某个程序段。直到条件不成立为止,给定的条件称为循环条件,反复执行的断码断称为循环体。
循环体简单来说就是:循环式一次又一次的执行相同的代码。
1.2 构成循环结构的几个条件
1)循环控制条件
2)循环体
3)能够让循环体结束的语句(递增,递减,真,假等)
1.3 while循环介绍及基本格式
1.3.1 while循环的格式
while(条件){
语句块;
}
1.4 while使用举例
int a = 5;//存储要执行的次数 //(1)循环控制条件 while (a > 0 ) { a--;//能够让循环控制条件为假的语句 printf("a = %d \n",a);//循环体 }
1.5 while循环使用陷阱--死循环
1.5.1
例如: int a = 5;
while(a >0){ printf("a = %d \n",a); }
此处没有能够让循环控制条件为假的语句,因此a > 0一直为真,进入了死循环
1.5.2 空语句死循环
例如 while(1);
1.5.3 不要造成死循环,会严重影响到系统性能,甚至会占尽内存导致机器挂掉
1.6 控制游戏方向
<span style="white-space:pre"></span> int loop = 1; //定义一个变量 char ch; //写一个死循环 while (loop) { scanf("%c", &ch); if (ch == '\n') { continue; } switch (ch) { case 'w': case 'W': printf("Direction: Up\n"); break; case 'S': case 's': printf("Direction: Down\n"); break; case 'A': case 'a': printf("Direction: Right\n"); break; case 'D': case 'd': printf("Direction: Left\n"); break; default: printf("Quit\n"); loop = 0; break; }}
1.7 while循环 猜数字游戏
int answer = arc4random_uniform(1000) + 1;// 1 - 1000的随机数 int i = 1; int guess = 0; while (i < 11) { printf("input a numbner(between 1 and 1000), %d times left: " , 10 - i); scanf("%d", &guess); if(answer == guess){ printf("Right!\m"); break; } else if(answer > guess){ printf("Too small\n"); }else{ printf("Too big\n"); } if(++i > 10){ printf("Stupid, over!\n"); break; } } printf("Answer : %d", answer);
1.8 while循环使用时注意事项
1.8.1 while循环表达式问题
如:
int i = 1, sum = 0; while(i++ <= 5){ //i++ 后值变成2 sum += i;//第一次加i的时候,i = 2; }
1.8.2 死循环:任何数值都有真假性,
while(-1){ 语句块 }
这个也是死循环,因为-1是非零的
1.8.3 当一个变量与一个常量惊醒 == 或 != 的时候,通常把常量写在前面,避免少写一个等号,变成了赋值运算,导致死循环
如 int num = 4;
while(4 == num){ 语句块; }
1.8.4如果while循环只有一句话,此时可以省略大括号
如:while(a > 0)printf("HH");
2.do .... while循环的介绍和使用
2.1 do ...while循环的基本格式
do {语句1;语句2;}while(条件);
2.2 while 与do...while的区别
2.2.1 当条件第一次不为假的时候,两者无区别
2.2.2 while是当型循环:当条件满足的时候,再去执行循环体
do... while是直到循环:先执行循环体,然后判断条件,直到条件为假就结束
例:
int a = 0; while (a) { printf("While :a = %d\n",a--); } a = 10; do{ printf("Do While :a = %d\n",a--); }while(a); 打印结果:Do While :a = 0
3.for循环的介绍与使用
3.1 构成for循环的三个条件:
1)循环控制条件
2)循环体
3)能够让循环体结束的语句(递增,递减等)
3.2举例
A B Cfor(int i = 0; i < 10; i++){printf("i = %d", i); //循环体}
以上,i < 10 是循环控制条件
i++ 是能够让循环体结束的语句
执行顺序:
1)先执行A初始化变量i*,A只执行一次。
2)再判断B
如果为真,a.执行循环体,
b.再执行C
c.再判断B,如果为真。。。。
如果为假,退出循环体
3.3 for循环的其他形式
3.3.1 括号内的三个表达式都可以省略,或者省略一部分
例如:
<span style="white-space:pre"></span>int i = 0for(; i < 5; i++){printf("i = %d", i);}或者 int i= 0;for(;;){if(i < 5){printf("i = %d", i);i++;}else{break;}}
3.4 for 循环的嵌套
3.4.1 嵌套循环在一般情况下,只有2两,不会超出3层
3.4.2 嵌套举例例子
3.4.2.1 打印5x5的*号矩阵
for(int i = 0; i < 5; i++){ for (int j = 0; j < 5; j++) { printf("* "); } printf("\n");}
打印结果:* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
3.4.2.2 打印5x5的*号 倒上三角矩阵
for (int i = 5 ; i > 0; i--) { for (int j = 0; j < i; j++) { printf("* "); } printf("\n"); }
打印结果:
* * * * *
* * * ** * *
* *
*
3.4.2.3 打印正三角
for(int i = 1; i <= 5; i++){ for (int j = 1 ; j <= 5 ; j++) { if(j > 5 - i){ printf("* "); } else{ printf(" "); } } printf("\n"); }
打印结果:
*
* *
* * *
* * * *
* * * * *
3.4.2.4 打印九九乘法表
for (int i = 1; i < 10 ; i++) { for (int j = 1; j <= i; j++) { printf("%dx%d=%d ", i,j,i*j); } printf("\n"); }
打印结果:
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
4.break关键字和break语句
4.1 break和continue语句都可以用在循环中,用来跳出循环,即结束循环,break语句还可以用在switch语句中
例如 :
<span style="white-space:pre"></span> for(int i = 0 ;; i++){if(i > 4){break;//break之后的语句不会再执行}printf("%d", i); }
5.continue关键字和continue语句
5.1 continue是结束本次循环,继续下一次循环
continue语句的作用是跳过循环体中剩余的语句而继续下一次循环,continue语句只在for,while,do.. while循环中使用。经常是与if语句结合。
例如:
int a = 10; while(a--){if(a%2 == 0){continue;}printf("###");}
0 0
- 黑马程序员----C语言学习笔记之循环结构介绍和用法举例
- 黑马程序员-IOS学习笔记-C语言基础循环结构
- 黑马程序员——C语言笔记之循环结构
- 黑马程序员-----C语言学习之循环结构
- 黑马程序员----C 语言学习笔记之结构体
- 黑马程序员------C语言-----选择结构和循环结构总结
- 黑马程序员---OC学习笔记之NSFileManager介绍和用法
- 黑马程序员——C语言基础学习(二)---分支结构和循环结构
- 黑马程序员-C语言笔记(三)循环结构
- 黑马程序员——C语言之循环结构
- 黑马程序员—C语言结构控制和循环
- 黑马程序员之IOS学习总结——03C语言中循环结构
- 黑马程序员-----------C语言基础-----------循环结构
- 【黑马程序员】C语言基础-循环结构
- 黑马程序员-C语言学习笔记(循环)
- 黑马程序员-IOS学习笔记-C语言基础选择结构
- 黑马程序员-ios学习笔记 c语言 结构体
- 黑马程序员--c语言结构体介绍
- UIActivityIndicatorView的使用
- Apache 无法正常启动问题
- /ML /MD 等编译选项区别
- hdu 1576 A/B||hdu 3049 Data Processing 乘法逆元
- qml学习--------------利用Canvas绘制图片
- 黑马程序员----C语言学习笔记之循环结构介绍和用法举例
- 遍历Element自定义属性
- Love is 0,0 is start!
- Java异常
- android 基于ListView和CheckBox实现多选和全选记录的功能(转)
- js中可以改变作用域的三中方式(改变this)
- Qt中Ui名字空间以及setupUi函数的原理和实现
- 图片缩放、上传图片改变大小
- 定时器的配置