流程控制和数组
switch关键字
swicth后面控制的类型只能是byte、short、char、int四种整数类型,枚举和java.lang.String类型(从java7才支持),不能是boolean类型
switch(expression){
case condition1:{
statment(s);
break;
}
}
Java11编译器做了一些改进,当case块后面没有break语句,会出现警告:“[fallthrough]可能无法实现case”,这个警告以前需要为Java指定-X:fallthrough选项才能显示出来。
Java7允许switch后市java.lang.String,但不能是StringBuffer和Stringbuilder这两个字符串类型。
while(count < 10);
//下面的代码和while循环没有关系,因为while后面加了";"
{
System.out.println("hello word");
}
package com.uncle;
public class Test {
public static void main(String[] args) {
//当中间的条件为空时,则默认值为true
for (int i = 0; ; i++)
{
//将无限输出hello word
System.out.println("hello word");
}
}
}
continue和break
Java提供了continue和break来控制循环结构,除此之外,return可以结束整个方法。
continue和break区别:
- continue只是忽略本次循环剩下的语句,并不会终止循环
- break则完全终止循环本身
return并不是用来结束循环的,它是来结束一个方法的。
数组
数组是引用类型
数组一旦初始化完成,它所占用的内存空间就被固定下来,即数组的长度将不可改变
数组必须先初始化,然后才可以使用,所谓初始化,就是为数组的数组元素分配在内存空间,并为数组元素赋初始值
初始值的获得有两种形式:一种是由系统自动分配,另一种是由程序员指定。
数组的初始化有两种方式:
- 静态初始化:自己指定数组元素的初始值,系统决定数组长度
- 动态初始化:自己给定数组长度,系统分配初始值
如果访问数组元素的索引值小于0或者大于数组的长度,在编译期间不会发生错误,但是在运行时会出现异常:java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界异常),N代表访问的数组索引
foreach
Java5提供了foreach循环
package com.uncle;
public class Test {
public static void main(String[] args) {
String[] str = new String[]{
"", ""};
for (String string : str) {
System.out