有时候选择的条件过多就需要我们用到一个语句:选择语句
三目运算
变量=条件判断?表达式1:表达式2
根据条件判断成立时执行表达式1,失败时执行表达式2
我们通过代码来看:
public
class
Test {
public
static
void
main (String args[]){
int
a=2;
//定义常量a
int
b=9;
//定义常量b
int
max=0;
//定义一个最大值
max=a>b?a:b;
//三目运算
System.
out
.println(
"最大值为"
+max);
}
}
执行结果:
最大值为9
三目运算其实就相当于另一种的if···else运算
if···else:当需要满足某种特定的条件时,就说用到if和if···else语句
当if中的表达式成立,执行if下{}中的语句,否则执行else {}中的程序
我们通过代码来看:
public
class
Test {
public
static
void
main (String args[]){
int
a=2;
//定义常量a
int
b=9;
//定义常量b
if
(a>b) {
//当a>b成立时,执行if里面的输出语句
System.
out
.println(
"a>b正确"
);
}
else
{
System.
out
.println(
"a>b错误"
);
//当if中()里的语句不正确时,执行else里面的输出语句
}
}
}
执行结果:
a>b错误
当有多个选择条件时,可以使用if···else的嵌套语句
当if()中的表达式成立时,执行if下面{}中的语句,否则执行else if{}中的语句,知道最后一个,如果上面()中的表达式都不成立,则执行else下{}中的语句
我们通过代码来看
public
class
Test {
public
static
void
main (String args[]){
int
a=2;
//定义常量a
int
b=9;
//定义常量b
int
c=15;
//定义常量c
if
(a>b) {
//当a>b成立时,执行if里面的输出语句
System.
out
.println(
"a>b正确"
);
}
else
if
(a>c) {
System.
out
.println(
"a>c正确"
);
//当if中()里的语句不正确时,执行else里面的输出语句
}
else
if
(c>b) {
System.
out
.println(
"c>b正确"
);
}
else
{
System.
out
.println(
"都不正确"
);
}
}
}
执行结果:
c>b正确
当选择的条件太多的时候,为了让阅读代码的人更方便,可以使用switch语句
当case的值与switch()中表达式的值相等时,执行当前case下的语句,否则继续判断下一个case,如果没有一个case的值与表达式中的值相等时,则执行default 中的语句
注意:这的break是跳出当前语句,这个一定要写!否则程序会执行每一个语句。
我们通过代码来看
public
class
Test {
public
static
void
main (String args[]){
int
a=2;
//定义常量a
switch
(a) {
//如果case的值和a相等,则执行当前case下的语句
case
1:{
System.
out
.println(
"a=1"
);
}
break
;
//当前case下的语句执行完毕,跳出这个段程序
case
3:{
System.
out
.println(
"a=3"
);
}
break
;
case
2:{
System.
out
.println(
"a=2"
);
}
break
;
case
5:{
System.
out
.println(
"a=5"
);
}
break
;
default
:
break
;
}
}
}
执行结果:
a=2
再看下面的代码:
public
class
Test {
public
static
void
main (String args[]){
int
a=2;
//定义常量a
switch
(a) {
//如果case的值和a相等,则执行当前case下的语句
case
12:{
System.
out
.println(
"a=12"
);
}
break
;
//当前case下的语句执行完毕,跳出这个段程序
case
3:{
System.
out
.println(
"a=3"
);
}
break
;
case
23:{
System.
out
.println(
"a=23"
);
}
break
;
case
5:{
System.
out
.println(
"a=5"
);
}
break
;
default
:{
System.
out
.println(
"没有满足的条件"
);
}
break
;
}
}
}
执行结果:
没有满足的条件
下面我们来看看没有break,这段语句会怎么样
public
static
void
main (String args[]){
int
a=2;
//定义常量a
switch
(a) {
//如果case的值和a相等,则执行当前case下的语句
case
12:{
System.
out
.println(
"a=12"
);
}
case
2:{
System.
out
.println(
"a=2"
);
}
case
23:{
System.
out
.println(
"a=23"
);
}
case
5:{
System.
out
.println(
"a=5"
);
}
default
:{
System.
out
.println(
"没有满足的条件"
);
}
}
}
}
执行结果:
a=2
a=23
a=5
没有满足的条件
a=2之前的语句没有执行,当case的值等于2时输出“a=2”,正常的情况到这里这段语句就已经执行完成了,但是a=2后面的语句被一次执行了一次,所以一定要注意加break。