-
虽然所有循环结构都可以用while或者do...while表示,但JAVA提供了另一种语句--for循环,是循环结构更加简单。
-
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。
-
for循环执行次数实在执行前就确定的
for(初始化;布尔表达式;更新){
//代码语句
} -
关于for循环有以下几点说明:
最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环变量,也可以是空语句。然后检测布尔表达式的值,如果为true,循环体被执行。如果为false,循环终止。开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。再次检测布尔表达式,循环执行上面的过程。
练习1:计算0到100的奇数和偶数之和
package struct;
public class ForDemo01 {
public static void main(String[] args) {
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i < 100; i++) {
if (i%2!=0){//奇数
oddSum+=i;
}else{
evenSum+=i;
}
}
System.out.println("奇数之和:"+oddSum);
System.out.println("偶数只和:"+evenSum);
}
}练习2:用while或for循环输出1--1000之间能被5整除的数,并且每行输出3个
package struct;
public class ForDemo02 {
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
if (i%5 == 0) {
System.out.print(i+" ");
}
if (i % (5 * 3) == 0) {//每行
System.out.println();
// System.out.print(" );
}
}
}
}练习3:打印九九乘法表
package struct;
/*
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
public class ForDemo03 {
public static void main(String[] args) {
//先打印第一列
//再把1循环包起来
//去掉重复
//调整样式
//主要学会思维
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i)+" ");
}
System.out.println();
}
}
}
-
先了解,后面数组会重点使用
-
JAVA 5引入了一种主要用于数组或集合的增强型for循环
-
语法
for(声明语句:表达式){
//代码句子} -
声明语句:声明新的局部变量,该变量类型必须和数组元素类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等。
-
表达式:是要访问的数组名,或者是返回值为数组的方法
package struct;
public class ForDemo04 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义一个数组
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
System.out.println("=============");
//遍历数组的元素
for (int x:numbers){
System.out.println(x);
}
}}
break和continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余语句。也在switch语句中使用
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
打印三角形
package struct;
public class TestDemo {
public static void main(String[] args) {
for (int i = 1; i <=5; i++) {
for (int j = 5; j >=i; j--) {
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
*
***
*****
*******
*********
Debug