------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
循环结构
循环就是将需要重复的代码, 包裹起来, 只需要写一遍 设置循环的次数, 或条件, 即可进行重复执行。
1.while循环结构
while 循环是最简单的循环
语法:
while ( 表达式 ) 语句;
或者
while ( 表达式 ) {
语句;
}
每次执行, 首先判断 表达式的真和假, 如果为真, 则执行循环体中的代码如果为假, 就结束循环, 那么每次执行完循环体, 都会再次判断表达式的真假.
代码练习:
求1到100的和
#include <stdio.h>
int main(int argc, const char * argv[]) {
int sum = 0;
int count = 1;
while ( count <= 100 ) {
sum += count;
count++;
}
printf("1 加到 100 和 是 %d\n", sum);
return 0;
}
>1 一般使用 while 循环的地方
一般需要在某些特定的条件下重复执行某个操作
一般控制某些代码执行 n 次
int count = 0;
while ( count < n ) {
// 代码体
count++;
}
2.do while 循环结构
do-while
首先执行一次循环体 然后再进行判断, 如果判断为真, 再次执行循环体, 在判断..如果判断为假, 则跳出
语法
do {
循环体
} while ( 条件 );
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 10);
注意:一般使用的时候, 只考虑 while 循环
如果 while 循环满足下面的格式, 再考虑 do-while 循环
语句;
while ( 表达式 ) {
语句;
}
如果上面的 语句 与 循环体中的语句 是一样的, 那么直接考虑 do-while循环
3.for 循环
int i = 0;
while (i < 10) {
i++;
}
基本语法
for (表达式1; 表达式2; 表达式3) {
循环体
}
表达式1 -> 表达式2 -> 循环体 -> 表达式3 -> 表达式2 -> 循环体 -> 表达式3 -> 表达式2 -> ...
#include <stdio.h>
int main(int argc, const char * argv[]) {
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
printf("%d\n", sum);
return 0;
}
1> for循环的常用格式
for (int i = 0; i < 100; i++) {
// 循环 100 次的 for 语法
}
for (int i = 1; i <= 100; i++) {
// 循环 100 次的 for 语法
}
for (int i = 100; i > 0; i--) {
// 也是循环 100 次
}
2> for循环嵌套
所谓的 for 循环嵌套, 就在 一个 for 循环中还有另一个 for 循环
理解运行的过程
for (int i = 0; i < 5; i++) { // 外循环
for (int j = 0; j < 3; j++) { // 内循环
// 循环体
}
代码练习:
//九九乘法表
#include <stdio.h>
int main(int argc, const char * argv[]) {
// row 行
// column 列(col)
for (int row = 1; row < 10; row++) {
for (int col = 1; col < row + 1; col++) {
printf("%d*%d=%d\t", col, row, row * col);
}
printf("\n");
}
return 0;
}
4.条转语句
跳转语句
break 使用在循环中表示结束整个循环
break 语句只用在循环和 switch-case 结构中
continue 表示忽略 continue 后面的语句, 进行下一次循环
return 表示函数的结束
goto 了解
代码练习:
// 求水仙花数
#include <stdio.h>
int main(int argc, const char * argv[]) {
for (int i = 100; i < 1000; i++) {
// 求各个位置上的数字
int bai = i / 100;
int shi = i % 100 / 10;
int ge = i % 10;
if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) {
printf("%d\n", i);
}
return 0;
}