JAVA-初步认识-第三章-三元运算符

一. 概述

三元运算符就是三个元素参与运算的操作符。前面讨论的运算符都是一元或者二元的。

三元运算符有特定的符号和表达形式,(条件表达式)?表达式1:表达式2; 依照条件表达式的结果是true还是false,

来决定运行表达式1还是2。→这里说的条件表达式是一个判断语句,判断的结果也是boolean类型数据。格式中必须要有括号么?

我们开始对三元运算符进行一个演示:

DOS显示在编译的过程中出现了错误。第一个错误就交代了语法有错误,一个错误的出现,导致了后续一系类的错误。

当将源程序改动后,DOS就显示正常。

我们对这里错误的语句进行分析:int x=3,y; y=(if x<2)?100:200; 这个三元运算符在使用时,有这么三步,要有前提int x=3,y;

要有经过判断后的输出(不同的判断结果,会有不同的输出。比较运算符参与的判别大小),输出的结果必须赋值给变量(因为输出的结果不确定)。

三元运算符的书写格式也可以探讨,条件表达式后面接问号,是在进行询问,如果true则选择表达式1,在表达式1和2之间用

冒号作为分隔符,最后的分号是语句结束的标志。

我又重新换了一种书写方式,DOS结果又显示错误。

上面的种种错误都显示出,我们对于三元运算符的认识和运用不熟悉,条件表达式得出的结果是不确定的,必须要有变量来承载。定义中说的表达式1和表达式2,

这种翻译说法可能并不准确,看着好像是两个具体的结果,而不是两个表达式。可以是进过运算的结果。

二. 三元运算符的分析

三元运算符本质有点像,经过判断后,二选一的意思。

 

这个例子可以看出,max被赋的值是经过三元运算符判断后的结果,而不是max=a>b?,之前我一直认为是承载的条件表达式。

分析:什么是变量?就是不确定的数据。如果不能确定的话,就是变量,就需要定义类型,开始赋不赋值都可以,但是涉及输出的时候一定要有数值,看下图。只要输出的不是Z,那么即使Z没有赋值,源程序也是可以编译,运行的。

 

里的max代表着三元运算符运算后的结果,因为结果不确定,因此也是变量,也需要定义类型。如果不定义类型的话,DOS就会报错,显示如下。也就是说,只要是变量,一定要定义类型,赋不赋值可以另说。既然是定义变量,那么结果是什么类型也要心里有数,不然定义的时候无法确定变量类型。

下面有一个正确的书写。

 总结:我始终觉着这里讲解的例子过于单薄,没有深刻的解释清楚三元运算符使用的深刻含义,(条件表达式)?表达式1:表达式2; 这里的条件表达式绝非简单的比较大小,而且对于如何写表达式,我们也是不清楚。在条件表达式的左边一定要有,赋值给变量的样式出现么?依据上面的说明,我们可以肯定一点的是,这个三元运算符的结果一定是个变量。一定要找个空间装它。

还有一点:只要是运算符,总会有结果。

(现定义,现操作)

从这个比较三个数得最大,以及上面的比较两个数得最大,我们又回到最初那句话,计算机是帮助计算的工具,

程序将我们日常生活中的许多工作,都在计算机上表现了出来。我们只需要讲之前所学的知识点,通过计算机高级

语言的书写方式,在计算机上书写出来即可。这个就需要我们非常熟悉,计算机语言的书写规则。

三. 

我开始设想,三元运算符能不能不通过赋值给左侧的变量就直接输出,结果在书写的过程中发现根本不可能。

/**

三元运算符书写为int x=3; x<2?4:5;

用System.out.println()输出。  // 这里先要输出三元运算符的结果,那必须在三元运算符的左侧书写赋值语句。

 */

为了探索更多的三元运算符的信息,又编写了一个小程序。

/**

int x=3;

char y=x<2?'A':'B';

System.out.println("y="+y);  // DOS的结果显示为,y=B

*/

三元运算符是一个简单的判断选择输出操作。在给定的前提,有一个评判的标准,经过这个标准,选择输出两个数据的哪一个。

这和if ,while相比,只是简单的输出数据操作。

 

posted @ 2017-09-03 21:58  前锋营  阅读(802)  评论(0编辑  收藏  举报