3.2.3 一些for循环的变种
//for 循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问 题。
// 代码 2 int i = 0 ; int j = 0 ; // 这里打印多少个 hehe? for ( i = 0 ; i < 10 ; i ++ ) { for ( j = 0 ; j < 10 ; j ++ ) { printf ( "hehe\n" ); } } //打印100个 // 代码 3 int i = 0 ; int j = 0 ; // 如果省略掉初始化部分,这里打印多少个 hehe? for (; i < 10 ; i ++ ) { for (; j < 10 ; j ++ ) { printf ( "hehe\n" ); } } //打印10个 // 代码 4- 使用多余一个变量控制循环
3.2.4 一道笔试题:
// 请问循环要循环多少次? #include <stdio.h> int main () { int i = 0 ; int k = 0 ; for ( i = 0 , k = 0 ; k = 0 ; i ++ , k ++ ) k ++ ; return 0 ; }
//循环0次,因为for里面的k是赋值,并不是判断,赋值为0直接为假,跳出循环,所以是0次
3.3 do...while()循环
3.3.1 do语句的语法:
do
循环语句 ;
while ( 表达式 );
3.3.2 do语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用。
3.3.3do while循环中的break和continue
ps:break只能跳出一条循环
//上面的知识点就讲完了哈!!!现在我们来自己尝试编写下面的程序来巩固知识吧!!!
//当然,下面的题也有很多新奇的东西,大家一时半会想不出来很正常,先接触一下哈!!!到后面自然就熟悉了!!!不要想不开哈!这是大部分人都会经历的!当然,我只是说初学者哈!!
3.4 练习
1. 计算 n 的阶乘。
2. 计算 1!+2!+3!+……+10!
3. 在一个有序数组中查找具体的某个数字 n 。(讲解二分查找)
4. 编写代码,演示多个字符从两端移动,向中间汇聚。
1.思路:
例2 求1到n阶乘的和(用以上相关联的方法就是再套一个循环然后加在一起)
法一:
法二:
对于法一,重复算了很多值,所以来个更有效的方法
例3:
用二分法
法一:
法二:
这就是二分查找,找不到就缩小一半查找范围
例4:
演示多个代码从两边向中间汇聚
PS:
还有一点说掉啦,就是arr1和arr2数组要一样长才可以哈!不然超过的部分就会打印随机数的哈!
今天的内容就到处结束了哈!感谢大家的观看!!要是觉得对你有一点用的话,就来一个点赞加关注吧!!!谢谢大家!!!
编程就是永不放弃!永不放弃有两个原则,第一个原则是永不放弃,第二个原则就是:当你想放弃时回头看第一个原则!加油!!!