有两种类型的决策在Java中的语句,它们分别是:
if 语句
switch 语句
if 语句:
if语句由一个布尔表达式后跟一个或多个语句。
语法:
if语句的语法是:
if(Boolean_expression){//Statements will execute if the Boolean expression is true}
如果布尔表达式的值为 true,那么代码里面的块if语句将被执行。如果不是第一套代码的if语句(后右大括号)结束后,将被执行。
例子:
publicclassTest{publicstaticvoidmain(Stringargs[]){intx =10;if(x <20){System.out.print("This is if statement");}}}
这将产生以下结果:
Thisisifstatement
if...else 语句:
if 语句后面可以跟一个可选的 else 语句,语句执行时的布尔表达式为 false。
语法:
if...else 的语法是:
if(Boolean_expression){//Executes when the Boolean expression is true}else{//Executes when the Boolean expression is false}
实例:
publicclassTest{publicstaticvoidmain(Stringargs[]){intx =30;if(x <20){System.out.print("This is if statement");}else{System.out.print("This is else statement");}}}
这将产生以下结果:
Thisiselsestatement
if...else if...else 语句:
if后面可以跟一个可选的 else if...else语句,这是一个使用单一的,测试各种条件下非常有用 if... else if语句。
当使用 if , else if , else 语句时有几点要牢记。
if 可以有0个或没有 else 且它必须在else if 的之后。
if 可以有0个或多个 else if,但是它们必须在else之前。
一旦 else if 成功, 余下else if 不会被测试执行。
语法:
if...else 的语法是:
if(Boolean_expression1){//Executes when the Boolean expression 1 is true}elseif(Boolean_expression2){//Executes when the Boolean expression 2 is true}elseif(Boolean_expression3){//Executes when the Boolean expression 3 is true}else{//Executes when the none of the above condition is true.}
例子:
publicclassTest{publicstaticvoidmain(Stringargs[]){intx =30;if(x ==10){System.out.print("Value of X is 10");}elseif(x ==20){System.out.print("Value of X is 20");}elseif(x ==30){System.out.print("Value of X is 30");}else{System.out.print("This is else statement");}}}
这将产生以下结果:
Valueof X is30
嵌套 if...else 语句:
它始终是合法的嵌套if-else语句,这意味着你可以使用一个if或else if语句在另一个if或else if语句。
语法:
嵌套 if...else 的语法如下:
if(Boolean_expression1){//Executes when the Boolean expression 1 is trueif(Boolean_expression2){//Executes when the Boolean expression 2 is true}}
可以嵌套 else if...else 在类似的方式,因为我们有嵌套的if语句。
实例:
publicclassTest{publicstaticvoidmain(Stringargs[]){intx =30;inty =10;if(x ==30){if(y ==10){System.out.print("X = 30 and Y = 10");}}}}
这将产生以下结果:
X =30andY =10
switch 语句:
switch 语句允许一个变量来对值的列表相等进行测试。每个值被称为一个例子,并且在选择测试该变量被检查的每种情况。
语法:
增强的 for循环的语法是:
switch(expression){casevalue ://Statementsbreak;//optionalcasevalue ://Statementsbreak;//optional//You can have any number of case statements.default://Optional//Statements}
以下规则适用于switch语句:
在switch语句中使用的变量只能是一个字节,short,int和或char。
可以switch 有一个任何数量的case语句。每个案例后面进行比较的值和一个冒号。
对于 case 的值必须是相同的数据类型作为开关变量,它必须是一个常量或文字。
当被打开了变量等于的情况下,下列那 case 语句将执行,直到 break 语句为止。
当达到一个break语句,switch 终止,并且控制流程跳转到下一行下面 switch语句。
不是每一个 case 需要包含break。如果没有出现break,控制流将贯穿到后面的 case 直到 break 为止。
switch语句可以有一个可选默认 case ,它必须出现在 switch 的结束。缺省情况下,可用于执行任务时,没有case是true。没有break 是必须的,使用 default 。
例子:
publicclassTest{publicstaticvoidmain(Stringargs[]){//char grade = args[0].charAt(0);chargrade ='C';switch(grade){case'A':System.out.println("Excellent!");break;case'B':case'C':System.out.println("Well done");break;case'D':System.out.println("You passed");case'F':System.out.println("Better try again");break;default:System.out.println("Invalid grade");}System.out.println("Your grade is "+grade);}}
编译并运行上面使用各种命令行参数的程序。这将产生以下结果:
$ java TestWelldoneYourgrade isa C
$