For循环
-
虽然所有循环结构都可以用 while 或者 do…while 表示,但 Java 提供了另一种语句 ———for循环,使一些循环结构变得更加简单。
-
for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
-
for 循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更新){ //代码语句 }
实例1:
下图中新建一个名为 ForDemo01的类。可以看到下图中有两个方框,一个红色方框,一个黄色方框。两个方框中的内容,我们进行对比,可以发现 红色方框中 while 循环的初始化条件,条件判断,迭代都可以直接放在 for 循环中。注:a +=2; 的意思就是 a = a+2;
我们运行输出一下看一下情况:
while循环结束的情况,如下图中红色箭头和红色方框所指。
for循环结束的情况,如下图中:
快捷键的拓展:100.for +Enter ,就可以得到第二张图的效果!
关于 for 循环有以下几点说明:
最先执行初始化步骤,可以声明一种类型,但可初始化一个或者多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值,如果为 true,循环体被执行。如果为 false ,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制变量的增减)。再次检测布尔表达式,循环执行上面的过程。
我们下面举例理解上面的说明:
“最先执行初始化步骤,可以声明一种类型,但可初始化一个或者多个循环控制变量,也可以是空语句。什么意思?然后,检测布尔表达式的值,如果为 true,循环体被执行。如果为 false ,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制变量的增减)。”
意思就是说: 当我们 for 中 i++,迭代更新完成之后,再回到 中间的条件判断中判断条件是否成立,这样往往复复。这样就很像前面我们讲到的 while 循环。
就是中间这个值,如果是 true,循环体就执行,如果为 false,循环体就终止
就是我们可以不要这个初始化,如下图;
同样条件判断也可以去掉!如下图;
同样也可以变成 死循环!如下图:
经典的练习题目
练习1:
计算 0 到100 之间所有奇数和偶数的和。奇数定义为 oddSum,偶数定义为 eveSum ,分别初始化为 0。然后 进行for 循环, if(i%2!=0),这句话是判断 i 除以2之后的余数不等于 0,因为奇数除2,是有余数产生的。如果没有余数产生,那么就执行 else下面的程序。
oddSum+ = i 相当于 oddSum= oddSum + i; eveSum+ = i ; 相当于 eveSum = eveSum+i;
注: % 的意思是 取余。 !的意思是 不等于。
练习2:
用 while 或 for 循环输出 1-1000 之间能被 5 整除的数,并且每行输出 3 个。
i %5==0,i 是被 5 整除了的数。我们需要把它输出出来。
我们可以看到输出当中用到了 “/t” ,这个是转义字符,作用相当于 Tab 键和打字过程中的空格键。红色箭头所指,我们可以看到第一个上面这个箭头 是 用的 “print”,第二个下面这个箭头,是用"println"。什么区别呢?看下图蓝色小框里面,print 输出完不会换行,println 输出完全换行。
那么 i%(5*3)==0, 这个功能就是满三个后换行,5,10,15,20,25,30…,所以必定到第三个数会被 5 * 3=15,会被15整除。那么输出换行 可以用System.out.println( ); 也可以用 System.out.println("\n"); 。
下面展示一下 println 和 print 的区别:
// println 输出完全换行
// 效果如下图:
// print 输出完不会换行
// 效果如下图;
那么我们运行一下,如下图看到的最终效果: