在Java中,语句的种类可分为:表达式语句、声明语句、控制流程语句。下面将介绍这三种语句:java
一个表达式,在计算(执行)后的结果能够表示如下三种含义:express
一个表达式的类型,指的就是它在计算后获得的结果的类型。关于表达式更多信息可参考Java语言特性规定。函数
以上四种表达式及其复合表达式,在加上分号(;)就成为了相应的表达式语句,以下所示:code
// assignment statement aValue = 8933.234; // increment statement aValue++; // method invocation statement System.out.println("Hello World!"); // object creation statement Bicycle myBike = new Bicycle();
形如:对象
// declaration statement double aValue = 8933.234;
语句块是由一对含有零条或者多条语句的大括号所组成,可以出如今任何一条单独语句可以出现的地方。ci
class BlockDemo { public static void main(String[] args) { boolean condition = true; if (condition) { // begin block 1 System.out.println("Condition is true."); } // end block one else { // begin block 2 System.out.println("Condition is false."); } // end block 2 } }
在语句块中声明的变量,它的做用域仅限于该语句块。也就是说下面这样的代码是被容许的:作用域
public static void main(String[] args) { { { int i=0; } { int i=0; } }
if(boolean-exprenssion){ statements; } //或者 if(boolean-exprenssion){ statements; }else{ statements; }
下面的例子中出现了else if
,但其并非新的关键字,而仅仅是else后面紧跟一个新的if语句。rem
if(boolean-exprenssion){ statements; }else if(boolean-exprenssion){ statements; }else{ }
虽然一样是选择语句,但与if-then和if-then-else不一样,switch能够有更多可能执行的路径,switch语句中的表达式类型能够是byte、short、char、int以及这四种对应的包装类型Byte、Short、Character、Integer。还能够是String类型和枚举类型。注意:当使用的是String类型的时候,表达式的值不能为null,不然会致使NullPointerException。it
public class SwitchDemo { public static void main(String[] args) { int month = 8; String monthString; switch (month) { case 1: monthString = "January";//这里的1就是一个case标签 break; case 2: monthString = "February"; break; case 3: monthString = "March"; break; case 4: monthString = "April"; break; case 5: monthString = "May"; break; case 6: monthString = "June"; break; case 7: monthString = "July"; break; case 8: monthString = "August"; break; case 9: monthString = "September"; break; case 10: monthString = "October"; break; case 11: monthString = "November"; break; case 12: monthString = "December"; break; default: monthString = "Invalid month"; break;//由于在最后了,因此其实是没有必要加break的 } System.out.println(monthString); } }
switch语句的主体被称为switch块,在switch块中能够有一个或者多个case/default标签,switch语句首先计算表达式,而后与case标签进行匹配。break语句是为告终束switch语句,没有breakd执行完case后面的语句以后,将继续往下执行。直到碰见break或者执行完全部语句。case标签必须是常量表达式或者是枚举常量,case标签的类型对于switch表达式的类型而言,必须是可赋值的。更多可参考java语言特性规定。io
for (initialization; termination; increment) { statement(s) }
while (expression) { statement(s) }
do { statement(s) } while (expression);
关于标签:
public static void main(String[] args) { label://后面必须紧跟循环语句 for(;;) { for(;;) break label; } }
如上面代码所示,标签就是后面根有冒号的标识符,而且标签与循环语句之间不容许插入任何其余语句,不然在使用break/continue标签的地方会编译出错。在Java里须要使用标签的理由就是想从多层循环嵌套中break或continue。
return语句从当前的方法离开,回到方法被调用的地方,有两种形式,一种带返回值,一种不带返回值(声明方法返回值类型为void时)。