我们在前面已经详细的介绍过了什么是循环结构,那么在java中还有什么些什么结构呢?
现在我们来比较详细的探讨一下下一种java结构---分支结构:
Java的分支结构有两种:
1、 if语句
2、 switch语句。
首先我们介绍一下什么是分支结构:
分支结构就是在顺序结构的执行过程中岔出一个特殊的分支去执行,该岔出的分支是为了对一些内容进行判断和选择。
接着,什么是if语句:
If代表的是如果,一帮情况下和else连用。else代表的是 否则 。其基本表达式如下所示:
If(布尔表达式){
结果为真则执行测出的代码
}else{
结果为假,则执行这里的代码
}
看一个例子:
class BranchToIf{
public static void main(String[] args) {
/**
* 下面的分支语句要做的事情是:
* 首先,运算 12==10 得到一个布尔值,如果 12 == 10 为真 ,这进入代码 1 否则进入代码 2
*/
if(12==10){
//代码 1
System.out.println("12等于10");
}else {
//代码 2
System.out.println("12不等于10");//实际输出。。因为我侄儿子都知道12不等与10
}
}
}```
当然,if语句的用法不止于此:
If(布尔表达式A){
如果表达式A为真则执行这里。否则进入下一个else if的布尔表达式B的运算
}else if (布尔表达式B){
如果布尔表达式B为真则执行这里,否则进入下一个不二表达式C的运算
}else if(布尔表达式C){
··如果布尔表达式B为真则执行这里,否则执行else下面的代码
}else{
如过ABC都不为真则执行这里。
}
代码如下:
class BranchToElseIf{
public static void main(String[] args) {
if(10==11){//显然不等,进入下一个else if
System.out.println("10等于11");
}else if (10==12){//显然不等,进入else if
System.out.println("10等于12");
}else if (10==13){//显然被不等 进入 else
System.out.println("10等于13");
}else {
System.out.println("10等于10");//真是的执行代码,因为什么你知道的。
}
}
}
作为一个合格的开发者,你需要带自己所写的代码负责。所以,尽量不要去if else if 里面再接着写判断,如果你非写不可,最多不要超过两层,你也许可以对非值进行理解,然后尽量在非此次值做逻辑。
比如说:
class BranchToIf2 {
public static void main(String[] args) {
if (10 == 20) {
System.out.println("10等于20");
} else {
System.out.println("10不等于20");
}
//可以改写为:其结果是一样的.
if (10 != 20) {
System.out.println("10不等于20");
return;
}
System.out.println("10等于20");
}
}
下面我们介绍什么是switch:
Switch语句判断的是,一个值和一堆值的映射关系,说简单点,就是从一值中找出你想要的哪一个值。
其语法如下:
Switch:一个你需要比对的值{
case value:
你要做的代码
一般要有一个break:
case value2 :
你需要执行的代码
一般要有一个break:
default:
如果都没有和你期望的值映射成功,则执行这里,这里不需要惊喜break。
}
代码如下:
class BranchToSwitch {
public static void main(String[] args) {
switchMetoh("Aatrox");
switchMetoh2("Aatrox");
}
static void switchMetoh(String i) {
switch (i) {
case "Aatrox":
System.out.println("暗夜剑魔");//执行这里
break;//结束
case "Ahri":
System.out.println("九尾妖狐");
break;
default:
System.out.println("没有匹配值");
}
}
static void switchMetoh2(String i) {
switch (i) {
case "Aatrox":
System.out.println("暗夜剑魔");//执行这里
//没有break则会穿透!所有case代码都会执行,直到default
case "Ahri":
System.out.println("九尾妖狐");
default:
System.out.println("没有匹配值");
}
// 执行结果:
/*
* 暗夜剑魔
* 九尾妖狐
* 没有匹配值
* */
}
}
对于switch语句需要注意的是,每一个case下面的代码必须要跟break,否则就会形成穿透现象,直到遇到下一个break或则defaut.