1、输出0~9之间的数
#include <stdio.h>
int main()
{
	int ch=0;
	while((ch=getcharr())!=EOF)
	{
		if(ch<'0' || ch>'9')
			continue;
		putchar(ch);
	}	
   return 0;
}for循环
使用while循环时,循环变量初始、循环判断、循环调整,可能会离得比较远,不容易修改,如下;所以就使用了for循环
#include <stdio.h>
int main()
{
	int i=0;//初始化
	//...
	
	while(i<10)//判断
	{
		
		//...
		
		i++;//循环调整
	}
   return 0;
}for语法
for(表达式1;表达式2;表达式3)
		循环语句;表达式1是 初始化部分,用于初始化循环变量的
表达式2是 条件判断部分
表达式3是 调整部分
建议:
1、不可在for循环体内(循环语句)修改循环变量,防止for循环失去控制
eg:在循环语句中写上 if(i=5),直接改变了i的值
2、建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
eg:前闭后开区间如:for(i=0;i<10;i++);
前后都闭区间如:for(i=0;i<=9;i++);
上面两个是等价的,推荐第一个是由于 第一个方便看出进行了10次循环,其他无关
eg:
#include <stdio.h>
int main()
{
	int i=0;
      //初始化 判断  调整
	for(i=1; i<=10; i++)
        ---  -----  ---
         1      2    4
	{
		printf("%d ",i);
        ----------------
               3
	}
    
    //先走第1步(初始)——>第2步(判断)--判断为真--->第3步  第4步
    (一直2、3、4步循环),直到----判断为假--->跳出
	
    return 0;
}或
#include <stdio.h>
int main()
{
	for(int i=1;i<=10;i++)
	{
		printf("%d ",i);
	}
	
    return 0;
}break、continue可以在for循环中使用,且与while循环中的作用一致
break:跳出循环;
continue:跳到循环调整部份处
使用continue时,while循环会卡死,但for不会;由于while循环中i++在循环语句中,而for循环i++在调整语句中,无论如何都会执行调整语句
如while:
while(i<=10)
{
		if(5==i)
    		continue;//当i=5时,直接跳到while条件判断部份,不会执行i++,
 i一直是5,就一直在死循环
    printf("%d ",i);
    i++;
 }#include <stdio.h>
int main()
{
	for(int i=1;i<=10;i++)
	{
		if(5==i)
			break/continue; //
		printf("%d ",i);
	}
	
    return 0;
}1、for循环的初始化、调整、判断都可以省略;但是——for循环的判断部分如果被省略,那判断条件就是:恒为真,就一直会执行
#include <stdio.h>
int main()
{
	for(;;)
	{
		printf("hehe\n");
	}
	
    return 0;2、如果不是非常熟练,不要随便省略代码
如下正常是会打印100个“hehe”,如省略两个图示,就只会打印10个,是由于i=0,j循环时,j循环结束,j=10并未清零,之后i=2、3、4...10时j都不会再循环,所以只有1*10个“hehe”
#include <stdio.h>
int main()
{
	int i=0;
	int j=0;
	for(i=0;i<10;i++)  //省略i=0
	{
		for(j=0;j<10;j++)//省略j=0
		{
			printf("hehe\n");
		}
	}
	return 0;
}例:下面不进行循环,由于条件判断语句:k=0, 直接k赋予/赋值 0,0为假,直接跳出循环
#include <stdio.h>
int main()
{
	int i=0;
	int k=0;
	for(i=0,k=0;k=0;i++,k++)//条件判断语句:k=0,
  直接k赋予/赋值 0,0为假,直接跳出循环
		k++;
	
	return 0;
}









