JAVA-初步认识-第三章-三元运算符
Posted 照破山河万朵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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相比,只是简单的输出数据操作。
以上是关于JAVA-初步认识-第三章-三元运算符的主要内容,如果未能解决你的问题,请参考以下文章