JAVA-初步认识-第二章-字符类型的运算续
一.
数值型变量数据的输出,我们已经见识过不少。字符型和数值型在一起的输出,我们也见过,最终输出的是数值。现在,我们想试一下单纯地字符型数据输出。输出字符串我们见过,前面的HelloWorld就是输出的字符串。下图中,我们单纯地输出一个字符c,在输出前并没有定义字符串变量,而且输出语句中没有算术运算符,因此这里的'c'就被当作一个字符常量输出。
这里为什么会要求在主函数的末尾加上分隔符?在定义语句和输出语句中,该如何书写字符型数据。上面的截图暴露了自己的诸多错误。(首先字符型定义的时候就有问题,类型必须写全,少了就不是关键字了,javac也就识别不了。要写成char a=A; 同时char a=A也写错了,这里的本质还是定义变量,在赋值的时候,A是字符常量,为了体现字符的性质,必须加上""。在输出语句中,既然已经定义了字符型的变量,该变量在输出的时候,就不需要加上单引号了,除非之前没定义的,又防止系统认为是没定义的变量,因此加上单引号。)
为什么主函数后面要求加上; 原因在于主函数没有定义范围,DOS将其当成类中的语句,所以每一句后面要加上;
通过检查和重新编写源代码,我们大致找出了如何正确输出字符型数据,要么提前定义好,而且类型名称要写全char,且加上单引号,(那么字符串型是不是要加上双引号?→在类型的分类中,没有字符串型,我们所写的HelloWorld是直接在输出语句中写出来的。);要么直接在输出语句中书写没有定义的字符型数据,但这时需要加上单引号。
二. 字符型数据参与的数值运算。
在输出语句中,可以单纯地输出数值型数据,也可以在输出语句中进行数值型数据的计算再输出。
例如:int a=4; System.out.println(a); 或者 int a=5; int b=7; System.out.println(a+b); →这里输出的是变量和表达式的运算结果。
其实,我最想说的是,在有字符型参与的数值运算时,格式该怎么书写。
例如:int a=4; System.out.println('b'+a);在DOS上是可以直接输出数值的,为102。输出语句中没有用字符型变量,而是字符常量。用定义好的字符型变量,那么输出语句中的就是字符常量进行的算术运算,如下图。
当然也可以只写书写System.out.println('b'+4);经过检测,这也是没有问题的。这背后的原理,我们可以试着分析一下,这种不同种类的基本数据类型之间能够进行运算就在于强制类型转换和自动类型提升(int是四个字节,字符是两个字节)。字符型和数值型在一起,结果为数值型;字符串型和数值型在一起,还是保持了字符串型。
例如:int a=4; System.out.println("b="+a); 或者 System.out.println("b="+4); 这两种写法输出都是b=4,有字符串的存在,输出中才会有字符串。
字符串类型和字符型数据在输出语句中的情况,如下图所示:→有字符串参与的输出语句,在输出的过程中,也可能夹杂算术运算。