Java有几种类型的选择语句:单分支if语句、双分支if-else语句、嵌套if语句、多分支if-else语句、switch 语句和条件表达式。
单分支if语句 语法结构:
if(布尔表达式){ 执行语句 ; }如果花括号内只有一条语句,就可以省略花括号,如下,两个语句是等价的。
if(i>0){ System.out.println("hello java"); } if(i>0) System.out.println("hello java");双分支if-else语句 语法结构:
if(布尔表达式){ 布尔表达式为真时执行语句 A; }else{ 布尔表达式为假时执行语句D }例如下面的代码:
int number=100; if(number%10==0){ System.out.println("You win"); }else{ System.out.println("You lose"); }若number%10==0为真时,执行打印输出You win,否则打印执行输出You lose。这里执行语句各位一条,也可以省略花括号。
嵌套if语句、多分支if-else语句 if语句可以在另外一个if语句中,形成嵌套的if语句。 if或if-else语句中的语句可以是任意合法的Java语句,甚至可以是其他的if或if-else语句。内层if语句称为是嵌套在外层if语句里的。内层if语句还可以包含其他的if语句;事实上,对嵌套的深度没有限制。它的语法结构如下:
if(条件1){ 执行语句A if(条件2){ 执行语句C }else{ 执行语句D } }else{ 执行语句B }例如下面的代码就是一个嵌套的if语句:
int number=100; if(number%10==0){ System.out.println("You win"); if(number==100){ System.out.println("The number is 100"); } }else{ System.out.println("You lose"); }语句if(number==100){}嵌套在语句if(number%10==0){}中,嵌套的if语句可实现多重选择。 执行结果是打印输出You win和The number is 100。
switch语句 switch语句基于变量或者表达式的值来执行语句。 语法结构为:
switch(参数){ case 选项1: 执行语句1; break; case 选项2: 执行语句2; break; ... default: 执行语句n break; }下面的代码就是一个switch语句的例子:
``java switch(number){ case "1": System.out.println("Spring"); break; case "2": System.out.println("Summber"); break; case "3": System.out.println("Automn"); break; case "4": System.out.println("Winter"); break; default: System.out.println("Input error"); break; }number是对case对应的值则输出对应的句子,并执行break跳出选择,如果没有执行default语句并跳出选择。
switch语句遵从下述规则: ①switch表达式必须能计算出-个char、byte、 short、 int 或者String型值,并且必须总是要用括号括住。 ②当switch表达式的值与case语可的值相匹配时,执行从该case开始的语可,直到遇到一个break语句或到达该switch语句的结束。 ③默认情况(default)是可选的,当没有一个给出的case与switch表达式匹配时,用来执行该操作。 ④关键字break是可选的。break语句会立即终止switch语句。
对比switch语句和if语句:
switch只能对单一的值进行判断 不能判断区间值 if可以对单一值进行判读也可以区间值所以在平时的编程中if-else语句选择语句用的较多。