在编程过程中需要根据实际控制代码的执行流程,而不是从头到尾的执行下去。一般的流程控制为分支和循环。
1分支:
if else是最常用的分支结构。if 可以单独使用.
int a = 1;
if (a == 1){
System.out.println("a is 1");
}
if (a == 2){
System.out.println("a is 2");
}
if (a != 1 && a != 2){
System.out.println("a 不是1也不是2 ");
}
等价于
int a = 1;
if (a == 1){
System.out.println("a is 1");
}else if(a == 2){
System.out.println("a is 2");
}else{
System.out.println("a 不是1也不是2 ");
}
对于多路分支结构,推荐使用switch(开关)语法,
int a = 1;
switch (a) {
case 1:
System.out.println("a is 1");
case 2:
System.out.println("a is 2");
default:
System.out.println("a 不是1也不是2 ");
}
注意case语句的值只能是在编译期就有明确值的常量,这和代码会编译成hash表有关。另外在早期的JDK中是不支持以String类型作为case值的,这个特性在JKD1.7才加入。
除了分支以外,循环是另外一种逻辑控制结构,最常见的写法为
for (int i = 1, c = 30, j = 2; i < c; i++, j++){
System.out.println(i);
}
注意for循环的括号里的内容两个分号分隔的三个部分,第一个部分是循环初始化时执行,第二个部分是一个返回布尔值的表达式,用来判断是否继续执行循环,第三个部分是在每一次执行循环体代码后做的操作。
除了for以外while和也很常用
while (true){
// this is a dead loop
}
//do while
do{
System.out.println("尽管while条件是false,但是还是可以执行一遍");
}while (false);
注意以上while和do while的区别, 在do while 中先执行一次循环体的代码再判断whie。
从JDK 1.5开始 Java提供了foreach 方式的循环
int[] numbers = {1, 2, 3, 4};
for(int i : numbers){
System.out.println(i);
}
当然除了遍历数组以外,这种方式更多地用来遍历集合(Collection)。
Collection<Integer> integers = new ArrayList<>();
integers.add(1);
integers.add(2);
for (Integer integer : integers){
System.out.println(integer);
}
网友评论