for( 表达式1;表达式2;表达式3)
{
循环体
}
循环从表达式1开始 - 表达式2(判别表达式)- 真 - 执行循环体 - 表达式3 - 判断表达式2
真 : 继续 — 循环体—表达式3 — 表达式2
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main(void) { int i = 0; //定义i,给初始值 //定义变量记录累加值 int sum = 0; // 初值为0 for ( i = 1; i <= 100; i++) { sum = sum + i; } //循环累加结果 printf("sum =%d\n", sum); return EXIT_SUCCESS; }for循环的变换形式
循环因子:a、在for循环之前定义,在for循环,结束后依然能使用。
b、定义for循环之内,for循环结束后,不能使用
for(int i =1; i <= 100; i++)//将定义i 放在for循环内表达式1
{
sum = sum +i;
}
//循环结束,打印出累加结果
printf("sum = %d, i= %d\n", sum, i);
int i= 1; // 定义循环因子
int sum =0;
for ( ; i<=100; i++) //不写表达式1
{
sum = sum +1;
}
省略表达式2 |
int i= 1; // 定义循环因子
int sum =0;
for ( ; i<=100; ) //不写表达式1,不写表达式3
{
sum = sum +1;
i++;
}int i= 1; // 定义循环因子
int sum =0;
for ( ; ; ) //不写表达式2,相当于for(;1 ;)表达式2为真(1),这出现一个死循环
{
printf("i =%d\n", i);
i++;
} // 死循环
解决死循环的方法是: 方法1:for( ; ;) 方法2:while |
练习:猜数字游戏,产生一个随机数,用户键盘输入一个数据,程序提示用户输入的数据><=随机数,用户根据提提示不断变换输入,最终猜中产生的随机数?
1、添加一个随机数,作用,保证随机数真正的随机
srand ( time (NULL)); //固定写法
//time(NULL):获取系统当前时间,unsigned long long 类型
//srand() : 函数来生成随机数,使用系统时间为算法的系统
2、添加头文件
//srand()—(stdlib.h)
//time() —(time.h)
3、生成随机数
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main(void) { /*练习:猜数字游戏,产生一个随机数,用户键盘输入一个数据,程序提示用户输入的数据 > <= 随机数,用户根据提提示不断变换输入,最终猜中产生的随机数? 1、添加一个随机数,作用,保证随机数真正的随机 srand(time(NULL)); //固定写法 //time(NULL):获取系统当前时间,unsigned long long 类型 //srand() : 函数来生成随机数,使用系统时间为算法的系统 2、添加头文件 //srand()—(stdlib.h) //time() —(time.h) 3、生成随机数 int n = rand() % 100; //随机数范围:0-99; */ //生成随机数 srand(time(NULL)); //生成随机数 n int n = rand() % 100; //范围0-99 int num; //定义num 变量,给用户输入数据 //创建一个死循环,给用户猜数字 for(;;) { //获取用户输入数据 scanf("%d", &num); //提示用户 if (num > n) { printf("猜大了!\n"); } else if (num < n) { printf("猜小了!\n"); } else { printf("猜中了!\n"); break; } } printf("中将数:%d\n", n); return EXIT_SUCCESS; }
嵌套for循环
int i =0; //外层循环的循环因子
int j = 0; //内层循环的循环因子
for( i =0; i <10; i++)
{
for( j =2; j <10; j++)
{
//循环体
}
}
//外层循环执行一次,内层循环执行一周嵌套for循环
int i =0; //外层循环的循环因子
int j = 0; //内层循环的循环因子
for( i =0; i <10; i++)
{
for( j =2; j <10; j++)
{
//循环体
}
}
//外层循环执行一次,内层循环执行一周#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main02(void) { //打印电子表 int i, j, k; for (i = 0; i < 24; i++) { for (j = 0; j < 60; j++) { for (k = 0; k < 60; k++) { printf("%02d:%02d:%02d\n", i, j, k); Sleep(1000); system("cls"); //清屏 } } } return EXIT_SUCCESS; }练习: //打印九九乘法表
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main03(void) { //打印九九乘法表 int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%d\t", j, i, j * i); } putchar('\n'); } return EXIT_SUCCESS; }