学习了分支结构之后,今天又学习了C语言之中非常重要的另一种结构形式——循环结构。
循环结构与分支结构不同,它是用来将同一段代码执行N次,N的值由表达式决定。循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,它是程序设计之中最能发挥计算机特长的程序结构 。
循环结构共有四种循环,不过一般我们只使用其中:while、do…while、for三种循环,其中,使用最多的为for循环。
int
main(
int
argc,
const
char
* argv[]) {
// for ( 循环变量初始值① ; 循环条件② ; 循环增量③ ) {
// 循环体④ ( 语句 );
// }
// 循环变量初始化只初始化一次
// 循环条件 : 只要满足循环条件 , 则会一直反复执行循环体 , 一旦循环条件不成立 , 则跳出 for 循环
// 循环变量增量 : 看需求
// 循环体 : 反复执行的语句
//for 循环执行的顺序① -- ② -- ④ -- ③ -- ② -- ④ -- ③ -- ② -- ④ -- ③ ......
// 总共有 50 个包子 , 包子一元一个 , 每次点一个 , 求总共点了多少次包子
for ( int i = 0; i < 50; i ++) {
printf ( " 第 %d 次点包子 \n" ,i + 1);
}
// 每次点五个
for ( int i = 0; i < 50; i += 5) {
printf ( " 第 %d 次点包子 \n" ,i / 5 + 1);
}
// 打印 0--100 的偶数值
for ( int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
printf ( " 偶数值是 %d\n" ,i);
}
}
// 输出 0--100 的奇数值
for ( int i = 0; i <= 100; i++) {
if (i % 2 == 1) {
printf ( " 奇数值是 %d\n" ,i);
}
}
// 求 0--100 中所有偶数的和
int sum = 0;
for ( int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
printf ( "sum is : %d\n" ,sum);
// 输出 1--100 中个位为 7 的数
for ( int i = 0;i <= 100;i++) {
if (i % 10 == 7) {
printf ( "%d\n" ,i);
}
}
// 求 1--100 不是 7 的倍数而且不包含 7 的数
for ( int i = 0; i <= 100; i++) {
if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {
printf ( "%d " ,i);
}
}
// 打印三行 1 2 3 4
for ( int i = 0; i < 4; i++) {
printf ( "%d " ,i + 1);
}
printf ( "\n" );
for ( int i = 0; i < 4; i++) {
printf ( "%d " ,i + 1);
}
printf ( "\n" );
for ( int i = 0; i < 4; i++) {
printf ( "%d " ,i + 1);
}
printf ( "\n" );
// 输出 10 行 1 2 3 4
for ( int i = 0; i < 10; i ++) { // 会循环执行 10 次
for ( int j = 0; j < 4; j ++) {
printf ( "%d " ,j + 1);
}
printf ( "\n" );
}
// 输出三行 4 3 2 1
for ( int i = 0; i < 3; i++) {
for ( int j = 4; j > 0; j--) {
printf ( "%d " ,j);
}
printf ( "\n" );
}
// 输出以下
for ( int i = 0; i < 4; i++) {
for ( int j = 0; j < i + 1; j++) {
printf ( "%d " ,j + 1);
}
printf ( "\n" );
}
// 输出以下
for ( int i = 0; i < 4; i++) {
for ( int j = 4; j >= 4 - i; j--) {
printf ( "%d " ,j);
}
printf ( "\n" );
}
// 输出乘法口诀表
for ( int i = 0; i <= 9; i++) {
for ( int j = 1; j <= i; j++) {
printf ( "%d * %d = %d " ,j,i,j * i);
}
printf ( "\n" );
}
//break 关键字 , 结束本层循环 , 机跳出本层 for 循环
//continue 结束本次循环 , 继续循环下次循环条件成立的循环体
// 输入一个整型数 , 判断它是否为质数 , 如果不是则 break 终止本层循环 ( 跳出 for 循环 )
int num = 0;
BOOL result = YES ;
printf ( " 请输入一个整数 :" );
scanf ( "%d" ,&num);
for ( int i = 2; i <= num - 1; i++) {
// 如果不是质数 , 则 break
if (num % i == 0) {
result = NO ;
break ;
}
}
if (result == YES ) {
printf ( " 是质数 \n" );
} else {
printf ( " 不是质数 \n" );
}
求 0--100 的所有的偶数的和
int sum = 0;
for ( int i = 1; i <= 100; i++) {
if (i % 2 != 0) {
continue ;
}
sum += i;
}
printf ( "%d\n" ,sum);
// while 循环 当条件成立时 , 则反复执行循环体
//0--100 7 的倍数
int i = 0; // 循环量的初始化
while (i <= 100) { // 循环条件
if (i % 7 == 0) { // 循环体 语句
printf ( "%d " ,i);
}
i++; // 循环增量
}
// do while 循环 先执行一次循环体 , 然后判断条件是否成立 , 如果成立 , 则继续执行循环体 , 如果不成立 , 则立即跳出 do while 循环
//1--100 7 的倍数
int i = 1; // 循环变量的初始化
do {
if (i % 7 == 0) { // 循环体
printf ( "%d " ,i);
}
i++; // 循环增量
} while (i <= 100);
// 随机数 系统根据条件随机打出我们要的数量的整数
//arc4random() 随机函数
// 随机公式 [a b] 之间的一个整数 arc4random() % (b - a + 1) + a
//[0 30] 随机 0---30 之间的一个数
int a = arc4random () % (30 - 0 + 1) + 0;
//[20 70] 随机的一个数
int b = arc4random () % (70 - 20 + 1) + 20;
printf ( "%d\n%d\n" ,a,b);
// 随机 20 个 [10 80] 之间的数
int c = 0;
for ( int i = 0; i < 20; i++) {
c = arc4random () % (80 - 10 + 1) + 10;
printf ( "%d " ,c);
}
// for ( 循环变量初始值① ; 循环条件② ; 循环增量③ ) {
// 循环体④ ( 语句 );
// }
// 循环变量初始化只初始化一次
// 循环条件 : 只要满足循环条件 , 则会一直反复执行循环体 , 一旦循环条件不成立 , 则跳出 for 循环
// 循环变量增量 : 看需求
// 循环体 : 反复执行的语句
//for 循环执行的顺序① -- ② -- ④ -- ③ -- ② -- ④ -- ③ -- ② -- ④ -- ③ ......
// 总共有 50 个包子 , 包子一元一个 , 每次点一个 , 求总共点了多少次包子
for ( int i = 0; i < 50; i ++) {
printf ( " 第 %d 次点包子 \n" ,i + 1);
}
// 每次点五个
for ( int i = 0; i < 50; i += 5) {
printf ( " 第 %d 次点包子 \n" ,i / 5 + 1);
}
// 打印 0--100 的偶数值
for ( int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
printf ( " 偶数值是 %d\n" ,i);
}
}
// 输出 0--100 的奇数值
for ( int i = 0; i <= 100; i++) {
if (i % 2 == 1) {
printf ( " 奇数值是 %d\n" ,i);
}
}
// 求 0--100 中所有偶数的和
int sum = 0;
for ( int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
printf ( "sum is : %d\n" ,sum);
// 输出 1--100 中个位为 7 的数
for ( int i = 0;i <= 100;i++) {
if (i % 10 == 7) {
printf ( "%d\n" ,i);
}
}
// 求 1--100 不是 7 的倍数而且不包含 7 的数
for ( int i = 0; i <= 100; i++) {
if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {
printf ( "%d " ,i);
}
}
// 打印三行 1 2 3 4
for ( int i = 0; i < 4; i++) {
printf ( "%d " ,i + 1);
}
printf ( "\n" );
for ( int i = 0; i < 4; i++) {
printf ( "%d " ,i + 1);
}
printf ( "\n" );
for ( int i = 0; i < 4; i++) {
printf ( "%d " ,i + 1);
}
printf ( "\n" );
// 输出 10 行 1 2 3 4
for ( int i = 0; i < 10; i ++) { // 会循环执行 10 次
for ( int j = 0; j < 4; j ++) {
printf ( "%d " ,j + 1);
}
printf ( "\n" );
}
// 输出三行 4 3 2 1
for ( int i = 0; i < 3; i++) {
for ( int j = 4; j > 0; j--) {
printf ( "%d " ,j);
}
printf ( "\n" );
}
// 输出以下
for ( int i = 0; i < 4; i++) {
for ( int j = 0; j < i + 1; j++) {
printf ( "%d " ,j + 1);
}
printf ( "\n" );
}
// 输出以下
for ( int i = 0; i < 4; i++) {
for ( int j = 4; j >= 4 - i; j--) {
printf ( "%d " ,j);
}
printf ( "\n" );
}
// 输出乘法口诀表
for ( int i = 0; i <= 9; i++) {
for ( int j = 1; j <= i; j++) {
printf ( "%d * %d = %d " ,j,i,j * i);
}
printf ( "\n" );
}
//break 关键字 , 结束本层循环 , 机跳出本层 for 循环
//continue 结束本次循环 , 继续循环下次循环条件成立的循环体
// 输入一个整型数 , 判断它是否为质数 , 如果不是则 break 终止本层循环 ( 跳出 for 循环 )
int num = 0;
BOOL result = YES ;
printf ( " 请输入一个整数 :" );
scanf ( "%d" ,&num);
for ( int i = 2; i <= num - 1; i++) {
// 如果不是质数 , 则 break
if (num % i == 0) {
result = NO ;
break ;
}
}
if (result == YES ) {
printf ( " 是质数 \n" );
} else {
printf ( " 不是质数 \n" );
}
求 0--100 的所有的偶数的和
int sum = 0;
for ( int i = 1; i <= 100; i++) {
if (i % 2 != 0) {
continue ;
}
sum += i;
}
printf ( "%d\n" ,sum);
// while 循环 当条件成立时 , 则反复执行循环体
//0--100 7 的倍数
int i = 0; // 循环量的初始化
while (i <= 100) { // 循环条件
if (i % 7 == 0) { // 循环体 语句
printf ( "%d " ,i);
}
i++; // 循环增量
}
// do while 循环 先执行一次循环体 , 然后判断条件是否成立 , 如果成立 , 则继续执行循环体 , 如果不成立 , 则立即跳出 do while 循环
//1--100 7 的倍数
int i = 1; // 循环变量的初始化
do {
if (i % 7 == 0) { // 循环体
printf ( "%d " ,i);
}
i++; // 循环增量
} while (i <= 100);
// 随机数 系统根据条件随机打出我们要的数量的整数
//arc4random() 随机函数
// 随机公式 [a b] 之间的一个整数 arc4random() % (b - a + 1) + a
//[0 30] 随机 0---30 之间的一个数
int a = arc4random () % (30 - 0 + 1) + 0;
//[20 70] 随机的一个数
int b = arc4random () % (70 - 20 + 1) + 20;
printf ( "%d\n%d\n" ,a,b);
// 随机 20 个 [10 80] 之间的数
int c = 0;
for ( int i = 0; i < 20; i++) {
c = arc4random () % (80 - 10 + 1) + 10;
printf ( "%d " ,c);
}
return
0;
}