流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的手段。如果没有流程控制语句,整个程序将按照线性的顺序来执行,不能根据用户的需求来决定执行的序列。
复合语句
Java语言的复合语句是以整个块区为单位的语句,所以又称为块语句或代码块。复合语句由开括号“{”开始,闭括号“}”结束。
复合语句中的每个语句都是从上到下被执行。复合语句以整个块为单位,能够在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句。
在使用复合语句的时候,要注意复合语句中的局部变量的作用域只局限于代码块内。
{
int num =0;
System.out.println(num);
}
条件语句
条件语句可以根据不同的条件执行不同的语句。条件语句包括if条件语句和switch多分支语句。
if条件语句:
if条件语句是一个很重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而另外一种情况下执行另外的语句。语法如下:
第一种 简单if语句:
if(布尔表达式) {
//布尔表达式为true则执行
若干语句
}
第二种 if…else语句:
If(布尔表达式) {
//布尔表达式为true则执行
若干语句
}else {
//布尔表达式为false则执行
若干语句
}
第三种 if…else if语句:
If(布尔表达式1) {
//布尔表达式1为true则执行
若干语句
}else if(布尔表达式2){
//布尔表达式2为true则执行
若干语句
}
switch分支语句:
语法:
switch(表达式){
case 常量值1:
语句块1
[break;]
...
case 常量值n:
语句块n
[break;]
default:
语句块n+1
[break;]
}
switch语句中表达式的值必须是整型、字符型或字符串类型,常量值1~n也必须是整型、字符型或字符串类型。
注意:在JDK1.6及以前的版本中,switch语句中表达式的值必须是整型、字符型,但是在JDK1.7中加入了字符串类型。
switch语句首先计算表达式的值,然后会逐个找常量值与表达式的值相同的case语句,如果有则执行该case语句中的语句,直到遇到break语句;如果没有相匹配的case语句则执行default语句。default语句可选,如果它不存在,且switch语句中表达式的值不与任何case常量相同,switch则不做任何处理。
注意:如果case语句中没有break语句,执行完匹配的case语句后,将会继续执行后面的case语句,直到遇到break语句,或者到switch语句结束处为止。
例如:
public class Test {
public static void main(String[] args) {
System.out.println("请输入1~5的整数:");
Scanner s = new Scanner(System.in);
int num = s.nextInt();
switch(num) {
case 1:
System.out.println("我是第一条case语句");
break;
case 2:
System.out.println("我是第二条case语句");
break;
case 3:
System.out.println("我是第三条case语句");
case 4:
System.out.println("我是第四条case语句");
case 5:
System.out.println("我是第五条case语句");
default:
System.out.println("没有匹配的case语句");
break;
}
}
}
上面的程序如果输入2,则匹配到第二条case语句,打印结果如下:
如果输入3,匹配到第三条case语句,由于第三条case语句没有break语句,执行完第三条case语句后会继续执行,直到遇到break语句或者switch语句结束处。