JAVA从零单排2-----流程控制和数组

本文详细介绍了Java中的流程控制结构,包括分支结构(if、switch)、循环结构(while、do-while、for、foreach)及其控制语句(break、continue、return)。此外,还深入探讨了数组的使用方法,包括初始化、访问元素及数组特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程控制

Java提供了两种流程控制结构:分支结构和循环结构。Java提供if和switch两种分支语句,还提供了while、dowhile、for三种循环结构,除此之外,foreach循环可以更简单的来遍历集合、数组的元素。Java还提供break和continue来控制程序的循环结构。

1. if条件语句

if(条件)

{

如果条件为真,则执行此段代码

}


if(条件)

{

如果条件为真,则执行此段代码

}else{

如果条件为假,则执行此段代码

}


if(条件)

{

}ifelse{

}else{

}

2. switch分支语句

switch(expression)

{

case condition1:

……

break;

case condition2:

……

break;

default:;

……

}

每个case标签后的每个代码块都有一个break;语句。Switch先计算expression的表达式的值,然后与每个case标签后的值进行比较,一旦相等,开始执行case后边的代码,直到遇到brea才结束。注意,switch后的expression表达式的数据类型只能是byte、short、int、char类型。

3. while循环语句

while(test_expression)

{

}

每次循环之前,先对test_expression循环条件求值,如果循环条件为true,则运行循环体部分。使用while循环时,一定要保证循环条件有变成false的时候。

4. do while 循环语句

do while循环与while循环的区别在于:while循环是先判断循环条件,如果条件为真才执行循环体;而dowhile循环则先执行循环体,然后判断循环条件,如果循环条件为真,则执行下一次循环,否则中止循环。

do

{

statements;

[iteration_statements]

}

while(test_expression);

5. for循环语句

for([init_statements]; [test_expression]; [iteration_statement])

{

}

执行for循环时,先执行初始化语句init_statements,这个语句只在循环开始前执行依次。每次执行循环体之前,先计算test_expression循环条件的值,如果循环条件为true,则执行循环体部分代码,然后执行循环迭代语句iteration_statement。因此,对于for循环,循环条件总比循环体要多执行一次。

6. foreach循环

使用这个循环结构可以方便的遍历数组和集合。

for(typevariableName : array | collection)

{

}

注意:foreach循环不能给数组赋值!

7. 嵌套循环

当程序语带嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将外层循环的循环体来执行—只是内层循环需要反复执行自己的循环体而已。当内层循环执行结束、且外层循环的循环体执行介绍,则再次计算外层循环的循环条件,决定是否再次开始执行外层循环的循环体。

l 使用break结束循环

break用于完全结束一个循环,跳出循环体。

l 使用continue结束本次循环

continue只是中止本次循环,开始执行下一次循环。

l 使用return结束方法

当使用return语句时,return后边的语句则不执行,直接结束整个方法。


数组类型

Java的数组要求所有数组具有相同的数据类型。一旦数组的初始化完成,则数组在内存中所占用的空间大小就被固定了,数组的长度也就固定了。即使把某个数组元素的数据清空,但它所占的空间依然被保留,依然属于该数组,数组的长度依然不变。

数组的初始化:

newType[] arrayName;

arrayName =newType[]{element1, element2, element3…};//静态初始化数组

arrayName = new Type[length];//动态初始化数组

int[][] b = new int[4][5];//二维数组

使用arrayName[index]来访问数组元素的值。index表示数组元素的索引值,数组索引从0开始。使用arrayName.length来访问数组的长度。

数组是一个引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。数组元素存储在堆(heap)内存中,数组引用变量存储在栈(stack)内存中。

为什么有栈内存和堆内存之分?

答:当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法内存栈也将自然销毁了。因此,所有在方法中定义的变量都是放在栈内存中的;当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随着方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然被销毁。只有当一个对象没有任何引用变量引用它的时候,系统的垃圾回收机制会在合适的时候回收它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值