for循环的基本用法:
定义:对某些代码重复执行
基本结构:for(A; B; C)
语句1;
控制的范围:只能控制一个语句。若要控制多个语句则需要加{}花括号。
如何运行:首先执行A,在执行B,然后执行语句1,接着执行C,接着判断B若符合条件,
则继续执行循环,再执行语句1。否则,退出循环。在整个过程中A只执行一次。
for循环的嵌套使用:
由一下这个例子进行说明:
for(A; B; C)
for(D; E; F)
语句1;
语句2;
首先 执行 A B,接着执行D E,接着执行语句1,再执行F,判断条件是否符合E,若成立,则
进入循环,执行语句1,一直执行到不符合条件为止。若不符合条件,则退出第二个循环,执行C,再判断B是否符合条件,符合就执行D,E语句1,进行循环,同上。若不符合则退出循环,执行语句2。
注意:在以上循环中第一个for中的A是只执行一次,而第二for是执行多次的。
验证循环是否成立可用小数代替大数检验,小数成立一般大数也成立。
浮点型在for循环中的使用:
循环中更新的变量不能定义成浮点型,因为些数并不能准确的存储,是近似值,最好不用浮点型,会导致不准确。
浮点数的存错所带来的问题
float和double都不能保证可以精确的存储一个小数
举例:
有一个浮点型变量x,如何 判断x的值是否是零:
if (|x-0. 000001 | < 0. 000001) 令这个与某个很小的数相减的绝对值足够小
是零
else
不是零
为什么循环中更新的变量不能定义成浮点型
因为有些数不能准确的存储,最好不用浮点型。
# include <stdio.h>
//时间;2021年10月13日09点15分
//目的;总结for的简单用法
int main (void)
{
/* int i ;
int sum = 0; for循环是如何运行的?
1.先运行i=1,再运行i<100,接着是 sum=sum+i 最后才是 ++i
for (i=1; i<=100; ++i ) i<=100运行完代表一个循环结束,若任然成立,则接着循环,运行sum=sum+i
sum= sum + i; i=1只运行一次,即进行一次循环。
printf("sum = %d ",sum ); ps:for也是只能控制一个语句,while等也一样。
for的基本格式; for( A; B; C) 范围用法与if相同
语句A ;
*/ return 0 ;
}
浮点型在for循环中:
# include <stdio.h>
int main (void)
{
int i;
float sum = 0;
for (i=1; i<=100; ++i)
{
sum = sum + 1 / (float) (i);//这样是可以的 ,(数据类型)(表达式)为强制类型转化
sum = sum+ (float) (1/i); // 错误, (1/i)中1是整形,i也是,除出来也还是整形
//更简单的写法是: sum = sum + 1. 0/i;
}
printf(" sum = %f\n",sum); //float必须用%f输出
return 0;
}
# include <stdio. h>
/*
时间;2021年10月13日20点40分
目的;探究浮点型在循环中
*/
int main (void)
{
float i; //本程序不对,因为 循环中更新的变量不能定义成浮点型
float sum = 0; //原因; 因为有些数并不能准确的存储,是近似值,最好不用浮点型,会导致不准确
for (i=1.0; i<=100; ++i) // 浮点数的存错所带来的问题
sum= sum + 1/i; // float和double都不能保证可以精确的存储-一个小数
// 举例:
printf(" sum = %f\n",sum) ; // 有一个浮点型变量x,如何 判断x的值是否是零:
// if (|x-0. 000001 | < 0. 000001) 令这个与某个很小的数相减的绝对值足够小
return 0 ; // 是零
} // else
// 不是零
// 为什么循环中更新的变量不能定义成浮点型
// 因为有些数不能准确的存储,最好不用浮点型sum= sum + 1/i;
for循环的多个嵌套使用:
# include <stdio.h>
/*
时间:2021年10月14日16点54分
目的;总结单个与多个for循环的嵌套使用
*/
int main (void)
{ //此程序为举例说明,程序可能有些问题。
int i ,j; //定义i=1为1,i<=100为2,i++为3, j=2为4,j<=50为5,j+=2为6
int sum = 0 ; //print("%d",j)为A,print("%d",i)为B
for (i=1; i<=100; i++) //此程序是如何运行的?流程分析如下;
for (j=2; j<=50; j+=2) //先 1 2 再 for (j=2; j<=50; j+=2)进行循环,即运行 4 ,5,A再6 如果
print("%d",j); //j还满足 5,则运行A , 6 一直循环下去,直到不满足条件。然后退出这个循环
print("%d",i); //运行3 ,若满足2 ,则运行 for (j=2; j<=50; j+=2),从4开始重复,直到不满足
//直到 2 也不满足,退出循环,运行 B
//ps:注意第二次的循环中的 6和单个for循环的使用不同,单个for只运行一次,而它
return 0 ; //是在第一个for 满足条件后运行 4 ,当第二个for不满足后退出,但仍满足第一个for的条件
} //则它会运行 4 。
/* 这个程序是2个语句(不算上面的定义变量), 12 13 14 是第一个,15 是第二个。