Java入门基础:浅显易懂 三元运算符


前言

在开发过程中不管是 三元运算符 还是其他语句都会经常用到布尔表达式,所以在学习 三元运算符 之前需要先明白什么是布尔表达式?


一、布尔表达式

布尔表达式只有2种结果:true / false
看看以下简单示例结果是否与你想的结果一致:

布尔表达式中文结果
10 == 1010等于10吗?true
10 % 2 == 010对2取余等于0吗?10是偶数,对2取余当然等于0true
10 % 2 != 010对2取余不等于0吗?10是偶数,对2取余当然等于0,怎么可能不等于0false
10 > 1010大于10吗?false
10 < 1010小于10吗?false
10 != 1010不等于10吗?false
10 == 2010等于20吗?false
10 > 2010大于20吗?false
10 < 2010小于20吗?true
10 != 2010不等于20吗?true

二、三元运算符

三元运算符可以简单理解为if语句的简化版
对于三元运算符可以简单理解为:

code中文
?吗?
:否则

三、语法

布尔表达式 ? 表达式1 : 表达式2 ;
执行流程:
1、判断布尔表达式结果
2、为true,执行表达式1
3、为false,执行表达式2


四、示例

        /* 以下代码的运行结果为:这个数是偶数 */
        int num = 20;
//        if(num % 2 == 0){   // 如果num对2取余等于0
//            System.out.println("这个数是偶数");
//        }else{  // 否则
//            System.out.println("这个数是奇数");
//        }
        /* 简化为以下三元运算 */
        String flag = num % 2 == 0 ? "这个数是偶数" : "这个数是奇数";
        System.out.println("flag = " + flag);
		/* 以下代码的运行结果为:成绩不合法 */
        int result = 121;
//        if (result >= 0 && result <= 120){  // 如果成绩大于等于0 并且 成绩小于等于120
//            System.out.println("成绩合法");
//        }else if(result < 0 || result > 120){   // 否则,如果成绩小于0 或者 成绩大于120
//            System.out.println("成绩不合法");
//        }
        /* 简化为以下三元运算 */
        String flag = result >= 0 && result <= 120 ? "成绩合法" : result < 0 || result > 120 ? "成绩不合法" : "";
        System.out.println("flag = " + flag);
		/* 以下代码的运行结果为:体重正常 */
        int weight = 100;
//        if(weight >= 120){  // 如果体重大于等于120
//            System.out.println("体重偏重");
//        }else if(weight <= 90){ // 否则,如果体重小于等于90
//            System.out.println("体重偏轻");
//        }else { // 否则
//            System.out.println("体重正常");
//        }
        /* 简化为以下三元运算 */
        String flag = weight >= 120 ? "体重偏重" : weight <= 90 ? "体重偏轻" : "体重正常";
        System.out.println("flag = " + flag);
		/*
         * 以下代码的运行结果为:及格
         * 执行流程:
         *   1、先判断布尔表达式 if (result < 0 || result > 120) 结果为false,继续往下执行
         *   2、再判断 else if(result >= 60) 结果为true,打印及格,if语句结束,不再继续往下执行
         */
        int result = 90;
//        if (result < 0 || result > 120){
//            System.out.println("成绩不合法");
//        }else if(result >= 60){
//            System.out.println("及格");
//        }else if(result >= 70){
//            System.out.println("良好");
//        }else if(result >= 80){
//            System.out.println("优秀");
//        }else if(result >= 90){
//            System.out.println("十分优秀");
//        }
        /* 简化为以下三元运算 */
        String flag = result < 0 || result > 120 ? "成绩不合法" : result >= 60 ? "及格" : result >= 70 ? "良好" : result >= 80 ? "优秀" : result >= 90 ? "十分优秀" : "";
        System.out.println("flag = " + flag);

五、示例翻译

// 			  num对2取余等于0 吗? 布尔表达式为true执行"这个数是偶数"	否则  布尔表达式为false执行"这个数是奇数"
String flag = num % 2 == 0   ?  "这个数是偶数" 					 : 	 "这个数是奇数";

//			  result大于等于0 并且 result小于等于120 吗?布尔表达式为true执行"成绩合法" 否则 result小于0 或者 result大于120 吗? 布尔表达式为true执行"成绩不合法" 否则 执行空字符串""
String flag = result >= 0    &&  result <= 120    ?  "成绩合法" 					 : 	result < 0  ||  result > 120  ?  "成绩不合法" 				   :   "";

//			  weight大于等于120 吗? 布尔表达式为true执行"体重偏重" 否则 weight小于等于90 吗? 布尔表达式为true执行"体重偏轻" 否则 执行"体重正常"
String flag = weight >= 120    ?   "体重偏重" 				   :  weight <= 90 	   ?  "体重偏轻" 				   :  "体重正常";

//			  result小于0 或者 result大于120 吗? 布尔表达式为true执行"成绩不合法" 否则 result大于等于60 吗? 布尔表达式为true执行"及格" 否则 result大于等于70 吗? 布尔表达式为true执行"良好" 否则 result大于等于80 吗? 布尔表达式为true执行"优秀" 否则 result大于等于90 吗? 布尔表达式为true执行"十分优秀" 否则 执行空字符串""
String flag = result < 0  ||  result > 120  ?  "成绩不合法" 					 :  result >= 60 	? 	"及格" 					: 	result >= 70 	? 	"良好" 					:   result >= 80 	?   "优秀" 					:   result >= 90 	? 	"十分优秀" 					: 	"";
  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值