一.while循环
while 语句
的语法结构和
if 语句
⾮常
相似
。
1.if 和 while的对⽐
① if ( 表达式 )语句 ;② while ( 表达式 )语句 ; // 如果循环体想包含更多的语句,可以加上 ⼤括号
例如:
① if ( 1 )printf ( "hehe\n" ); //if 后边条件满⾜,打印 ⼀次hehe② while ( 1 )printf ( "hehe\n" ); //while 后边的条件满⾜, 死循环的打印hehe
执⾏判断表达式,表达式的值为
0
,循环直接
结束
;表达式的值
不为0
,则执⾏
循环语句
,语句执⾏完后再
继续判断
,是否进⾏下⼀次判断,while语句是可以实现
循环效果
的。
2.练习
①
在屏幕上打印 1~10 的值
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
②输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5
题⽬解析:
1.
要想得到n的最低位,可以使⽤
n%10
的运算,得到的余数就是最低位,如:1234%10得到4
2.
要想去掉n的最低位,找出倒数第⼆位,则使⽤
n=n/10
操作就可以去掉最低位的,如:
n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第⼆位3。
3.
循环1和2两个步骤
,在n变成0之前,就能到所有的位。
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while(n)
{
printf("%d ", n%10);
n /= 10;
}
return 0;
}
二.for循环
1.语法形式
for ( 表达式 1 ; 表达式 2 ; 表达式 3 )语句;
表达式1 ⽤于循环变量的
初始化
表达式2 ⽤于循环结束条件的
判断
表达式3 ⽤于循环变量的
调整
2.for循环的实践
练习:
①在屏幕上打印1~10的值
int i = 0 ;for (i= 1 ; i<= 10 ; i++){printf ( "%d " , i);}
for循环中初始化、判断、调整这三个部分相对比较集中,便于代码的维护,而while 循环的三个部分就⽐较分散。
②计算1~100之间3的倍数的数字之和
# include <stdio.h>int main (){int i = 0 ;int sum = 0 ;for (i= 1 ; i<= 100 ; i++){if (i % 3 == 0 )sum += i;}printf ( "%d\n" , sum);return 0 ;}// ⼩⼩的优化// 如果能 直接产⽣3的倍数 的数字就省去了多余的循环和判断# include <stdio.h>int main (){int i = 0 ;int sum = 0 ;for (i= 3 ; i<= 100 ; i+= 3 ){sum += i;}printf ( "%d\n" , sum);return 0 ;}
三.do-while 循环
1.语法形式
do语句;while ( 表达式 ) ;
while
和
for
这两种循环都是
先判断
,条件如果满⾜就
进⼊循环
,执⾏循环语句,如果不满⾜就跳
出循环;
⽽
do while
循环则是
先直接进⼊循环体
,执⾏循环语句,然后
再执⾏ while 后的判断表达式
,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
2.do while循环的实例
①在屏幕上打印1~10的值
# include <stdio.h>int main (){int i = 1 ;do{printf ( "%d " , i);i = i + 1 ;} while (i<= 10 );return 0 ;}
②
输⼊⼀个正整数,计算这个整数是⼏位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
# include <stdio.h>int main (){int n = 0 ;scanf ( "%d" , &n);int cnt = 0 ;do{cnt++;n = n / 10 ;} while (n);printf ( "%d\n" , cnt);return 0 ;}
四.break和continue语句
break
的作⽤就是
永久的终⽌循环
,只要
break
被执⾏,
break
外的
第⼀层循环就终⽌了
。
continue
是
继续
的意思,在循环中的作⽤就是
跳过本次循环中 continue 后边的代码,继续进⾏
下⼀次循环的判断
,如果循环的调整是在 continue
后边的话,可能会造成
死循环
。
在for、while和do while中所呈现的
作用不同
,
while和do while
循环中的作用一样。
五.goto语句
作用
:
以实现在
同⼀个函数内
跳转到设置好的
标号处
。
for (...){for (...){for (...){if (disaster)goto error;}}}error:......
本来
for
循环想提前退出得使⽤
break
,⼀个
break
只能跳出⼀层
for
循环,如果3层循环嵌套
就得使⽤3个
break
才能跳出循环,所以在这种情况下我们使⽤
goto
语句就会更加的快捷。