Java初步语法(4)之流程控制
复合语句:
分为:if条件语句、switch多分支语句、
概念:以整个块区为单位的语句,所以又称为块语句。
复合语句中的每个语句都是从上到下被执行。复合语句以整个块为单位,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句
在使用复合语句时要注意,复合语句为局部变量创造了一个作用域,该作用域为程序的一部分,在该作用域中的某一个变量被创建并使用。如果在某个作用域外使用该变量则会出现错误。
if条件语句分别分为三种语句结构,分别是:
1.简单的if条件语句
2.if……else语句
3.if……else if多分支语句
用途:用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
首先我们先来说一下最简单的 if条件语句:
语法如下;
if(布尔表达式){
语句序列
}
1. 布尔表达式:必要参数,表示最后返回的结果必须是一个布尔值。它可以是一个单纯的布尔变量或常量也可以是使用关系或布尔运算值的运算式。
2. 语句序列:可选参数。可以是一条或者多条语句,当表达式的值为true时执行这些语句。若语句序列中仅有一条语句,则可以省略条件语句中的“{ }”
注意:尽管if后边的复合语句只有一条可以省略“{ }”,但是为了增强程序的可能性最好不要省略。
条件语句后的语句序列省略时,则可以保留外边的大括号,也可以省略大括号。然后在末尾添加“;”如下所示的两种情况都是正确的。
Boolean b = false;
if (b);
Boolean b=false;
if(b);
if条件的执行过程如下:
2.if … else语句
if ……else 语句是条件语句中最常见的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理。
语法如下:
if(表达式){
若干语句
}
else{
若干语句
}
if后面“()”内的表达式的值必须是Boolean型的。如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后边的复合语句。if ……else语句的执行过程如下图:
注意:if……else可以用三元运算符简化:
if(a>0)
b=a;
else
b=-a;
可以简写成
b=a>0?a:-a;//a 是否大于零?如果a大于零就把a的值赋值给变量b,否则将-a的值赋值给b;
3.if ……else多分支语句
if ……else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”如果两者都符合就执行首先满足的那个。
语法如下:
if(条件表达式1(Boolean1)){
语句序列 1
}
else if(条件表达式2){
语句序列2
}
else if(表达式n){
语句序列n
}
1. 条件表达式1~条件表达式n;必要参数。可以有多个表达式组成,但是最后返回的结果一定要为Boolean类型。
2. 语句类型:可以是一条或者多条语句,当条件表达式1为true时执行语句序列1,当条件表达式2的值为true时,执行语句序列2,以此类推。当省略任意一组语句序列时,可以保留其外边的{ },也可以将“{ }”替换为“;”
Switch多分支语句:
主要用于检测一个变量是否符合某个条件,如果不符合再用另一个值来测。
当然 这种功能用if语句也可以实现,例如:
If(grade==’a’){
System.out.println(“true”);
}
If (grade==’b’){
System.out.println(“false”);
}
当然这个程序相较于switch语句笨重的多。
Switch语法如下:
switch(表达式)
{
case 常量值1;
语句块 1
[break;]
……
case 常量值n;
语句块 n
[break;]
default:
语句块 n+1
[break;]
}
限制条件:switch语句中表达式的值必须是整形、字符型或字符串类型。
注意:witch语句中,case语句后常量表达式的值可以是整数,但绝不可以是实数。