Java基础总结(二)流程控制与数组

流程控制

顺序结构
Java的基本结构就是顺序结,程序从上到下逐行执行,没有任何判断和跳转。

选择结构
Java提供了两种常见的分支控制结构:if语句和switch语句,其中if语句使用布尔表达式或布尔值作为分支条件来进行分支控制;而switch语句则用于对多个整型值进行匹配,从而实现分支控制。

if

if(logic expression){
    statement...
}
if(logic expression){
    statement...
}else {
    statement...
}
if(logic expression){
    statement...
}
else if(logic expression){
    statement...
}
... //可以有零个或多个else if语句
else{ //最后的else语句也可以省略
    statement...
}

switch

switch(表达式){
    case1:
        statement...
        break;
    case2:
        statement...
        break;
    case3:
        statement...
        break;
    default:
        默认语句;
}

循环结构

循环语句可以在满足条件的情况下,反复执行某一段代码。

while

while(布尔表达式){
循环体;
}

//实现1+2+3+...+100=?
public class WhileTest{
    public static void main(String[] args){
        int i = 0;
        int sum = 0;
        while(i <= 100){
            sum+=i;
            i++;
        }
        System.out.println(sum);
    }
}

do-while

do{
循环体;
}while(布尔表达式);
区别
while先判断后执行,do-while是先执行后判断,do-while总是保证循环体会被至少执行一次。

for 循环
for(初始表达式;布尔表达式;步进){
循环体;
}

public class Test{
    public static void main(String[] args){
        int sum = 0;
        for(int i=0;i<100;i++){
            sum += i;
        }
        System.out.println(sum);
    }
}

九九乘法表

public class Test {
    public static void main(String[] args) {
        for(int i=1;i<=9;i++) {
            for(int j=1;j<=i;j++) {
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }
    }
}

Java基础总结(二)流程控制与数组_第1张图片

foreach循环

for(type variableName : array | collection){
    System.out.println(variableName);
}
public class Test {
    public static void main(String[] args) {
        int[] arr = new int[]{1,2,3,4};
        for(int i : arr) {
            System.out.println(i);
        }
    }
}
控制循环结构

break
break用于强行退出循环,不执行循环中剩余的语句。
continue
continue语句用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

// 把100-150之间不能被3整除的数输出
public class Test {
    public static void main(String[] args) {
        for(int i=100;i<=150;i++) {
            if(i%3 == 0)
                continue;
            System.out.println(i);
        }
    }
}

数组
数组是一种常用的数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常可通过数组元素的索引来访问数组元素。Java的数组要求所有的数组元素具有相同的数据类型。
一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可改变。即使把某个数组元素的数据清空,但它所占的空间依然被保留。数组也是一种数据类型,它本身是一种引用类型。例如int是一个基本类型,但int[]就是一种引用类型了。

定义数组

type[] arrayName;
type arrayName[];

数组的初始化

  • 静态初始化:

    arrayName = new Type[] {element1,element2,element3 ...};
    intArr = new int[]{5,6,7,8};
  • 动态初始化

    int[] arrayName = new [5];

    执行动态初始化时,只需指定数组的长度,即为每个数组元素指定所需的内存空间。

使用数组

数组索引是由0开始的,如果访问数组元素时指定的索引值小于0或者大于等于数组的长度,编译程序不会出现任何错误,但运行时出现异常:java.lang.ArrayIndexOutOfBoundsException:N数组索引越界异常

所有的数组都提供了一个length属性,使用for循环遍历每个元素

for(int i=0;i<arrayName.length;i++){
    System.out.println(arrayName[i]);
}

数组内存分析

数组是一种引用类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。实际的数组对象被存储在堆内存中;如果引用该数组对象的数组引用变量是一个局部变量,那么它被存储在栈内存中。
如果堆内存中数组不再有任何引用变量指向自己,则这个数组将成为垃圾,该数组所占的内存将会被系统的垃圾回收机制回收。

Java基础总结(二)流程控制与数组_第2张图片

Java8增强的工具类Arrays类

public class Test {
    public static void main(String[] args) {
        int[] arr = new int[] {1,2,3,4};
        int[] arr2 = new int[] {3,1,8,4};
        System.out.println(arr.length); //length属性
        int[] b = Arrays.copyOf(arr2, 3); //复制数组
        Arrays.sort(b); //对数组进行排序
        for(int s:b) {
            System.out.println(s);
        }
    }
}

你可能感兴趣的:(java基础,Thinking,in,Java)