一、循环:
需要重复做的事情
C语言提供的循环语句:
goto
while
do-while
for
(1)****goto //可以构造循环 ,本身并不是循环语句
语法格式:
goto 语句标号; //标签
注:
1.禁止使用
//破坏了c语言的结构化
2.慎用
实现1 ~ 100求和
循环:
//1.初始条件
//2.循环体
//重复执行的部分
//3.结束条件
//4.使循环趋于结束的操作(语句)
//1.初始条件
int sum;
int i = 0; //变量
//2.循环体
//重复执行的部分
sum = sum + i;
sum1 = 1 + 2
sum2 = sum1 + 3
sum3 = sum2 + 4
sum4 = sum3 + 5
......
sum = 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
sum = sum + 5; // sum = sum + i;
//3.结束条件
i 走到 100
//4.使循环趋于结束的操作(语句)
i++
(2)****while语句:
语法:
while (表达式)
{
语句;
}
语义:
当 表达式 判断 为真?
此时执行 语句 ,
语句执行完成后,继续 表达式 判断
如果 为真
继续 执行 语句,
直到,表达式判断为假,while结束(循环结束)
注意:
语法 while后面,不要加分号 //除非就是要写一个空语句
练习:
输出所有的水仙花数。---- 三位数
100~999 //
eg:
153 <=> 1*1*1 + 5*5*5 + 3*3*3
每个位上的数字的立方和 等于 这个数字本身
153 //拆出 个 十 百 位上的数字
//算立方和
//判断一下与原数的关系
//思路:
step1:
准备初始条件
int i = 100;
step2:
实现循环
while ()
{
//循环过程中要对i代表的数字进行拆分,计算和判断
//1.拆出 个 十 百
//2.计算立方和 并 判断
//相等则打印
//不相等继续判断下一个数字
//直至循环结束
}
(3)****do-while
while (表达式)
{
语句;
}
语法:
do
{
循环体语句;
}while (表达式);
语义:
先执行 循环体语句,
再判断 表达式
真,继续执行 循环体语句
假,do-while结束,
程序继续往下
语法:
do-while中,while后面 有分号
区别:
1.逻辑上区别
while --先判断 后执行
do-while --先执行 后判断 //循环体始终都会被执行到,最少是一次
例子:
开机自检
do{
检测cpu
检测硬盘
检测内存//问题?
}while (?ok);
(4)****for 循环:
语法:
for( 表达式 1; 表达式 2; 表达式 3)
{
语句
}
语义:
s1 首先,求解表达式1,
s2 判断 表达式2
真
执行 语句
s3 继续 求解 表达式3
回到 s2 继续执行
直到 表达式2 为假
for语句结束
for(1; 2; 4)
{
3
}
1->2->3->4->2->3-4
理解:
for( 初始条件;循环(结束)条件;使循环趋于结束的语句)
{
语句; //循环体
}
注意:
1.表达式1 只会被执行一次
2.表达式1,2,3之间分号隔开
3.注意for语句后面,没有分号
作业:
打印1000以内的回文数。
回文
121 //
123
1
2
3
321 == 123?
23
1
k = 0;
m = 123;
n = 0;
k = m % 10; //3 2 1
n = n * 10 + k; //n = 3 n = 3*10+2=32 n=32*10+1 = 321
m = m / 10; //12 1
(5)****break 语句 和 continue 语句:
break 语句:
1.switch语句
2.循环中
含义: 表示跳出 本层循环 (结束了本层循环)
continue:
含义: 结束本次循环,继续下一次循环
练习:
从键盘输入一个数,判断是不是素数?
// 质数
所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数。
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;
否则称为合数(规定1既不是质数也不是合数)。
打印100内所有素数.
二、总练习题