/*
1.循环结构:
在程序中有一些代码段需要重复执行,假如没有循环结构,
就需要重复写代码。
将来把需要反复执行的代码片段放到"循环",再联合计数器,共同控制这段需要反复执行的代码。
2.for循环
语法结构:
for(初始表达式;1布尔表达式;3更新表达式){
2需要重复执行的代码段【也叫做循环体】
}
3.for循环的执行原理:*****
1.初始化表达式、布尔表达式、更新表达式都不是必须的!【但是两个分号是必须的】
2.初始化表达式最先执行,并且在整个for循环中只执行一次。
3.布尔表达式必须是true/false,不能是其它值。
4.for循环的执行过程:
*先执行初始化表达式,并且该表达式只执行一次
*判断布尔表达式的结果是true还是false
-布尔表达式为true
*执行循环体
*执行更新表达式
*再次判断布尔表达式的结果是true还是false
-布尔表达式为true
*继续......
-布尔表达式为false
*循环结束
-布尔表达式为false
*循环结束
4.什么是死循环
布尔表达式写成true就是死循环*/
public class for01
{public static void main(String[] args){//循环输出1-10//以下的for循环中"i"变量的作用域是仅限于当前for循环内部使用for(int i=1;i<=10;i=i+1){System.out.println(i); }//以下的for循环中"i"变量的作用域是仅限于当前for循环内部使用for(int i=1;i<=10;i+=1){System.out.println(i); }//以下的for循环中"i"变量的作用域是仅限于当前for循环内部使用for(int i=1;i<=10;i++){System.out.println(i); }//这个i变量可以在main方法的作用域中访问吗?无法访问//System.out.println("i="+i);编译错误,无法找到定义域//死循环for(;;){System.out.println("死循环");}//以下演示i变量作为全作用域使用//作用在main方法内的i变量。只要main方法没有结束,这里的i就能用int i=1;for(;i<=10;i++){System.out.println(i);//编译成功输出 }//先声明后赋值也可以int i;for(i=1;i<=10;i++){System.out.println(i);//编译成功输出 }//i--for(int i=10;i>=0;i--){System.out.println(i);}//计数器,注意位置的变换for(int i=0;i<10;){System.out.println("计数器="+i);i++; //输出1-9}for(int i=0;i<10;){i++;System.out.println("计数器="+i);//输出1-10}//循环语句和条件判断语句的使用【for和if的嵌套】//需求:找出1-100的所有奇数//方案一:从1开始,每次递增2,这样每一个数字一定是奇数(优选)for(int i=1;i<=100;i+=2){System.out.println("1-100的奇数="+i);}//方案二:从1开始,以1递增,每一个数据都进行判断,该数字对2求余数for(int i=1;i<=100;i++){//先把1-100循环输出,然后再进行if判断if(i % 2!==0){//i%2==1作用一样System.out.println("1-100的奇数="+i);} }/*在前面一个程序的基础上,计算1-100所有奇数的和1+3+5+7+9......运算符+= 就是专门完成追加的。所以需要容器来装加进去的数容器+=i;*/int sum=0;//呼应下面的正确定义域,在方法外部定义容器,不然容器进入循环体后会清零for(int 1;i<=100;i+=2){//定义一个变量【容器】//以下是错误示例,因为sum为局部变量,循环的时候会清零sum=0//int sum=0;//sum+=i;//以下是正确定义域,定义域在方法体外部sum+=i;//输出语句放在这里表示每循环一次则输出一个数据System.out.println("sum="+sum);}//输出语句放在这里表示,for循环结束后,最终输出求和的结果System.out.println("sum="+sum);//------------------------------------//for循环嵌套for循环//嵌套的for也是符合java语法的代码//内层循环中的变量名和外层循环的变量名不能重名for(int i=0;i<=10;i++){/* for(int i=100;;)//仔细观察这个for循环体是在第一个大for循环体的内部,重定义了变量i,所以报错{}*///这里是循环体,无论是什么样的代码,都要执行10遍for(int j=0;j<3;j++){System.out.println("j="+j);//输出结果是输出10次/0 1 2/012/012 ....}}//下面是更加直观的嵌套演示for(int i=1;i<=5;i++) {System.out.println("begin");for(int j=1;j<=5;j++){System.out.println(i*j);}System.out.println("end");}//结果:/*begin1*11*21*31*41*5endbegin2*12*22*32*42*5endbegin3*13*23*33*43*5endbegin4*14*24*34*44*5endbegin5*15*25*35*45*5end*///99乘法表for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){System.out.println(i+"+"+j+"="i*j+"\t");} }}
}