块作用域
分支语句
1块作用域:
块(即复合语句)是指由一对花括号括起来的若干条简单的java语句。
块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能在嵌套的两个块中声明同名变量。
使用块(有时称为复合语句)可以再java程序结构中原本只能放置一条简单语句的地方放置多条语句。
2条件语句:
if(condition)statement
当希望在某个条件为真时执行多条语句。应使用如下的格式:
{
statement1
statement2
...
}
在java中更一般的条件语句格式如下:
if(condition)statemeng1 else statement2
其中else部分是可选的。else子句与最邻近的if构成一组。
if(condition){statement}
else if(condition2){statement2}
else if(condition3){statement3}
else{statement4}
ps:字符串字面量和变量进行比较时,最好将字面量放在前边,这样当变量为空时,可以预防空指针
switch:
分支语句的另一种选择。
当想要判断一个表达式的多个值时,可以使用switch
一般语法形式:
switch(表达式){
case 值:
statement;
break;
...
default:
statement;
}
switch语句将从与选项值想匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句的结束处为止。
如果没有想匹配的case标签,而有default子句,就执行这个子句。
**警告**如果case分支语句的末尾没有break语句,那么就会接着执行下一个case分支语句。
case标签必须是整数或枚举常量
其中整数为short int char(char的字面量会自动转换为int类型,表达式计算式同理)
当使用枚举类型时,case后边的值不必指明枚举名,可以由switch的表达式值确定。比如:
Size sz = Size.SMALL;
switch(sz){
case SMALL://不需要写成 Size.SMALL
statement.....;
break;
}
中断控制流程语句:
break:
不带标签的break,会退出最靠近的语句块。
带标签的break:
有时候,更加希望跳到嵌套的所有循环语句之外,则可以使用带标签的break语句,形式:
***注意:标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号,
read_date:
while(...){
for(...){
break read_date;//当执行到这里,会跳转到带标签的语句块末尾
}
}
//也就是跳转到这里
continue:
continue语句将控制转移到最内层循环的首部。如果应用与for循环,则会跳到for循环的“更新”部分。
而带标签的continue语句,将跳到与标签匹配的循环的首部。
分支语句
1块作用域:
块(即复合语句)是指由一对花括号括起来的若干条简单的java语句。
块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能在嵌套的两个块中声明同名变量。
使用块(有时称为复合语句)可以再java程序结构中原本只能放置一条简单语句的地方放置多条语句。
2条件语句:
if(condition)statement
当希望在某个条件为真时执行多条语句。应使用如下的格式:
{
statement1
statement2
...
}
在java中更一般的条件语句格式如下:
if(condition)statemeng1 else statement2
其中else部分是可选的。else子句与最邻近的if构成一组。
if(condition){statement}
else if(condition2){statement2}
else if(condition3){statement3}
else{statement4}
ps:字符串字面量和变量进行比较时,最好将字面量放在前边,这样当变量为空时,可以预防空指针
switch:
分支语句的另一种选择。
当想要判断一个表达式的多个值时,可以使用switch
一般语法形式:
switch(表达式){
case 值:
statement;
break;
...
default:
statement;
}
switch语句将从与选项值想匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句的结束处为止。
如果没有想匹配的case标签,而有default子句,就执行这个子句。
**警告**如果case分支语句的末尾没有break语句,那么就会接着执行下一个case分支语句。
case标签必须是整数或枚举常量
其中整数为short int char(char的字面量会自动转换为int类型,表达式计算式同理)
当使用枚举类型时,case后边的值不必指明枚举名,可以由switch的表达式值确定。比如:
Size sz = Size.SMALL;
switch(sz){
case SMALL://不需要写成 Size.SMALL
statement.....;
break;
}
中断控制流程语句:
break:
不带标签的break,会退出最靠近的语句块。
带标签的break:
有时候,更加希望跳到嵌套的所有循环语句之外,则可以使用带标签的break语句,形式:
***注意:标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号,
read_date:
while(...){
for(...){
break read_date;//当执行到这里,会跳转到带标签的语句块末尾
}
}
//也就是跳转到这里
continue:
continue语句将控制转移到最内层循环的首部。如果应用与for循环,则会跳到for循环的“更新”部分。
而带标签的continue语句,将跳到与标签匹配的循环的首部。