For循环

  1. 虽然所有循环结构都可以用while或者do...while表示,但JAVA提供了另一种语句--for循环,是循环结构更加简单。
  2. for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
  3. for循环执行次数实在执行前就确定的
for(初始化;布尔表达式;更新){
    //代码语句
}
  1. 关于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+"\t");
            }
            if (i % (5 * 3) == 0) {//每行
                System.out.println();
                // System.out.print("\n);
            }
        }
    }
}

练习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)+"\t");
            }
            System.out.println();
        }
    }
}

增强for循环

  1. 先了解,后面数组会重点使用
  2. JAVA 5引入了一种主要用于数组或集合的增强型for循环
  3. 语法
for(声明语句:表达式){
    //代码句子}
  1. 声明语句:声明新的局部变量,该变量类型必须和数组元素类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等。
  2. 表达式:是要访问的数组名,或者是返回值为数组的方法

 

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

  1. break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余语句。也在switch语句中使用
  2. 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