JAVA 基础语法(三)——三目(条件)运算符以及分支语句

三目(条件)运算符以及分支语句

  • 三目运算符
  • 分支语句
    • if
    • if…else
    • if…else if
    • switch

三目(条件)运算符

1)语法结构

(boolean表达式)?(表达式1):(表达式2)

2)执行流程

先判断boolean表达式的值:
若为true,则整个运算式的值为表达式1的值;
若为false,则整个运算式的值为表达式2的值。

3)代码案例

用三目运算符找出变量a和b中较大的数 ,

int a=10,b=1;
int max=a>b?a:b;//如果a>b为true,说明a大,则把a的值赋给max,若a>b为false,说明b大,把b赋给max        

三目运算符的嵌套
找出3个变量a,b,c中的较大值

int a=10,b=5,c=1
int max=a>b?(a>c?a:c):(b>c?b:c);
//先比较a和b的值,再拿a,b中较大的和c比较。可以不加(),这里为了看的清晰,已经用()隔开


分支语句

什么是分支语句,例如 请判断变量a是不是正数,如果是,则输出a是正数,这个时候我们在输出之前要先写一个boolean表达式判断一下,然后输出,不可能是负数它也输出。为了达到这种需求,我们就要用到分支语句。
下面我们看一下java中的分支语句


if

1)语法结构

if(boolean表达式){
    代码块;
}

2)执行流程

先判断boolean表达式的值:
若为true,则执行代码块;
若为false,则不执行代码块。

3)代码案例

判断变量a是不是正数,如果大于0,则输出“是正数”:

int a=-10;
if(a>0){
    System.out.println("a是正数 ");//因为a=-10  所以a>0为false,所以并没有输出
}

if…else

1)语法结构

if(boolean表达式){
    代码块1;
}else{
    代码块2;
}

2)执行流程

先判断boolean表达式的值:
若为true,则执行代码块1;
若为false,则执行代码块2。

3)代码案例

判断变量a是不是正数,如果大于0,则输出“是正数”,否则输出“是非正数”:

int a=-10;
if(a>0){
    System.out.println("a是正数");
}else{
    System.out.println("a是非正数");//因为a=-10  所以a>0为false,所以输出else处的语句块
}

if…else if

1)语法结构

if(boolean表达式1){
    代码块1;
}else if(boolean表达式2){
    代码块2;
}
....
else{
    代码块n;
}

2)执行流程

先判断boolean表达式1的值:
a)若为true,则执行代码块1;
b)若为false,则判断表达式2的值,若为true,则执行代码块2,若为false,则继续判断;
c)如果所有的boolean表达式的值都为false,则执行else中的代码块n.

if …else if中可以由多种情况,但是不论有多少情况,都只会执行其中相对应的一个代码块,一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

3)代码案例

判断变量a是不是正数,如果大于0,则输出“是正数”,否则判断a是否小于0,若是,则输出“是负数”,否则输出 “是零”:

int a=-10;
if(a>0){
    System.out.println("a是正数");
}else if(a<0){
    System.out.println("a是负数");//因为a=-10  所以a<0为true
}else{
    System.out.println("a是零");
}

switch

1)语法结构

switch(变量/表达式){
    case 值1:
        语句块1;break;
    case 值2::
        语句块2;break;
    ...     
    default:
        语句块n;
    }

注意:
a)switch括号中的表达式不是boolean表达式,这个表达式有一个固定的值,也可以直接写个变量。
b)这个变量类型或者表达式值的类型可以是能转换成int类型的类型,如: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持枚举类型了,同时 case 标签必须为字符串常量或字面量。
c)switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
d)case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

2)执行流程

a)先确定变量/表达式的值,然后找到case中相对应的值
b)对应的 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
c)如果没有对应的case值,会执行default中的语句块n,default后不需要break。

注意:当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

3)代码案例

int a=5;
switch(a){
    case 6:
        System.out.println("这是6");break;
    case 5:
        System.out.println("这是5");
    case 4:
        System.out.println("这是4");break;        
    case 4:
        System.out.println("这是3");break;    
        defalut:
        System.out.println("这是n");      
}

结果如下:

这是5
这是4

注意上例代码中的case 5后语句块并没有break;所以在执行这个语句块后switch语句并没有结束,直到执行完case 4里面的语句块然后碰到break才终止了switch语句。

猜你喜欢

转载自blog.csdn.net/qq_34598667/article/details/72897759