一起学java【8】---流程控制之分支结构

2014-11-24 02:42:52 · 作者: · 浏览: 0

1、顺序结构在上一讲里面已经讲到了,这里就不多说了。

2、分支结构(或者叫做选择结构):

主要有两种:一种是if条件语句;另外一种是switch分支语句;
对于if条件语句呢一般也是有三种基本的形式:
第一种:
if(布尔表达式)
{
//执行代码块;
}
第二种:
if(布尔表达式)
{
//执行代码块;
}
else
{
//执行代码块;
}
第三种:
if(布尔表达式)
{
//执行代码块;
}
else if(布尔表达式)
{
//执行代码块;
}
举个实例吧:

int age = 30;
if(age > 20)
{
System.out.println("年龄已经在20岁以上了!");
System.out.println("这个年龄段的人要学会承担责任了!");
}

还有要注意的是:很多人都喜欢将if或者是else之后的{}不写出来,其实这样是很不好的习惯。

关于逻辑判断的错误:
先看一下实例,在做详细的解释:
int age = 45;
if(age > 20)
{
System.out.println("you're a young man!");
}
else if(age > 40)
{
System.out.println("you're a middle man!");
}
else if(age > 60)
{
System.out.println("you're an old man!");
}
//当这样子做分支结构的时候其实是有问题的,问题在哪呢?age>20这个范围显然是包含了后面的elseif里面的两个选择表达式的,所以当程序执行到if的时候就不会再往下执行了,后面那两个选择条件就失去了意义了。

这就相当于说如果你是个人,那就输出你是个人;后面的else if里面的是男人或者是女人,就没有意义了,因为人的范围就包含了男人或者是女人。

所以对于这一段代码的执行,个人觉得只需要注意别把范围大的放在前面了再去组织分支结构,一般情况下都是没有问题的。

对于上面那段错误代码只需要将20和60换个个,就可以了,当然你还要做的是将输出的内容做一下改变嘛,是吧!看看改正之后的例子吧:
int age = 45;

if(age > 60)
{
System.out.println("you're an old man!");
}
else if(age > 40)
{
System.out.println("you're a middle man!");
}
else if(age > 20)
{
System.out.println("you're a young man!");
}
当然对于age>40;还可以这样表述:将之前if里面的布尔表达式取反:
age>40&&!(age>60);这样一种表达也是可行的。

同样的,下面的age>20也是可以类似的表述:
age>20&&!(age>40);

if else的语句就先讲到这里,下面再看看另外的一种分支结构:switch结构:

语法格式如下:
switch(expression)
{
case condition1:
{
statement(s)
break;
}

.........//跟上面的类似的case;

举个实际的例子:
char score='c';

switch (score)
{
case 'a' :
System.out.println("优秀");
break;

case 'b' :
System.out.println("良好");
break;

case 'c' :
System.out.println("中");
break;

case 'd' :
System.out.println("及格");
break;

case 'e' :
System.out.println("不及格");
break;

default:
System.out.println("乘积输入错误!");
}
这里需要注意的是switch里面的控制表达式的类型只能是byte、short、char和int,不能是字符串,所以我们在之前定义这个控制表达式或者是变量的时候要注意只能定义成这几种类型之一。

总结;使用switch语句的时候,有两个地方要注意:其一就是上面已经说过了的控制表达式的类型,其二就是break,可以根据你的实际需要选择是否需要break。
作者“黎黎原上草”