Logo

郎哥编程

条件运算符

2019-12-09 1023

前面内容介绍了条件结构,并通过示例探讨了该结构的各种不同用法。Java语言还提供了一种称为“条件运算符”的特殊运算符,它可以用于条件表达式,以提供与if-else等同的结构。此运算符是?和:符号的组合,它是一个三目运算符,即具有三个参与运算的操作数,其语法规则如下:

布尔表达式 ? 表达式1 :表达式2

其中,布尔表达式返回一个逻辑值,其值可以为真,也可以为假。如果布尔表达式的值为真,则以表达式1的值作为整个条件表达式的值。否则,以表达式2的值作为整个条件表达式的值。条件表达式通常用于赋值语句中。其工作原理可以用图片形式进行描述,如下图所示。

 image.png                                            

条件运算符的工作原理

例如,要找出两个数字中的最大值,可以编写:

max = num1 > num2 ? num1:num2;

   可以看出,条件运算符需要三个操作数,一个是需要被赋值的操作数,另外两个是参与比较运算的操作数。该语句首先检查表达式num1>num2,判断其值是真还是假。如果此表达式的值为真,即num1>num2,则将num1赋值给max,否则,将num2的值赋值给max。

此运算符等同于如下的if-else结构

if(exprt1)
{
      exprt2;
}
else
{
   exprt3;
}

上述求较大值的示例等同于:

if(num1>num2)
      max = num1;
else
   max=num2;

如果在条件语句中,只执行单个的赋值语句时,则可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。

现在举个完整示例,说明条件运算符的用法。

案例1:编写一个程序,要求用户输入基本工资,计算税后工资。个人所得税收取规定:工资大于3500元的部分将扣除个人所得税。小于3500元的部分不扣除个人所得税。

在PbaseUnit10项目unit包下创建TaxSample类。代码如下:

/** 
* @Title: TaxSample.java 
* @Package unit 
* @Description: Java基础知识课程案例 
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
import java.util.Scanner;
 
/** 
* @ClassName: TaxSample 
* @Description: 流程控制(条件运算符)案例1
* @author 编程训练营
* @date  
* 
*/
 
public class TaxSample {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型 @throws
     */
 
    public static void main(String[] args) {
       double sal;
       double rate;
       Scanner sc = new Scanner(System.in);
       System.out.println("请输入基本工资:");
       // 接收用户输入的基本工资
       sal = sc.nextDouble();
       rate = (sal < 3500) ? 0 : 0.05;
       // 计算税后工资
       sal = sal - (sal - 3500) * rate;
       System.out.printf("\n 税后工资为:%7.2f \n", sal);
 
    }
 
}

程序结构分析

程序功能主要是演示条件运算符的使用。

语句“rate = ( sal < 3500 ) ? 0 : 0.05;”,用于判断税率,首先检查表达式sal < 3500,如果输入的工资大于3500,则将0.05的税率赋值给rate,否则,将0税率赋值给rate。

程序执行结果如下图所示:

image.png


条件运算符为三目运算符,其中,? 前面的语句为判断条件,?后面的语句用 : 隔开,为两个执行语句,如果 ?前面的条件为真,则执行?后面中 : 前面的语句,如果 ?前面的条件为假,则执行 : 后面的语句。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论