Logo

郎哥编程

Java条件运算符

2018-01-26 964

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

其语法规则如下:

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

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

                       

a098.png

                     

图 7-6  条件运算符的工作原理

 

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

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元的部分不扣除个人所得税。

在D盘Java目录下,新建“TaxSample.java”文件。用记事本打开“TaxSample.java”文件,输入以下代码:

import java.util.*;
public  class  TaxSample
{
  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。

编译“TaxSample.java”文件,在命令行窗口输入“javac  TaxSample.java”并执行命令,编译通过后,在命令行窗口输入“java  TaxSample”运行Java程序,命令行窗口显示如下信息:

a099.png

图 7-7 计算税后工资示例执行结果

 


■ 知识点拨

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

■ 思考与练习

编写一个程序,用条件运算符实现两个不相等数值的大小判断。要求:用户输入两个不相等数值,判断其大小,输出较大的数值。


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

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

评论区

登录 后发表评论
暂无评论