大数据培训之旅——Java-2(数据类型,运算符,分支控制)

    还是java写着顺手啊,这篇文章主要介绍java中的数据类型,以及分支控制语句,在这之前我们先说说昨天的hello word,这东西可是超级经典,基本上学任何语言,第一个例子都是这东西,所以,我们也不免俗套,那么来看看这几行代码都是什么意思吧。

——————————————————————————————————————————————————————

    当我们运行字节码文件时,jvm虚拟机(就是用来运行文件的程序)会在代码里面寻找到名main的主方法,然后按顺序一行一行运行,一直到程序结束,所以我们的所有代码都是在main主方法里面,不过都写进去会把自己写蒙的,所以要用点其他的手段,当然我们以后会说。

    下面说下标识符,这东西说白了就是名字,是程序员给程序中各个元素起的名字,例如我们第一个代码中的aa,这就是给一个类起名叫aa,标识符包括,类名,方法名,常量名,变量名等等等等,当然我们起名的时候也不能瞎起名,不过我这为了方便就随便起名了,正规的话有个叫驼峰命名法,可以百度下。除了驼峰命名法以外,我们还需要注意很多,比如我们起名不会起毫无意义的名字,程序也是,一般的名字都对应着功能,让其他人可以看懂。标识符也有自己的命名规则,这是java定下的,我们无法违背:标识符需要以字母,下划线(_),美元符($)作为第一个字母,后面可以跟字母,数字,下划线,美元符之类的东西,除了这三种开头方式,其他的都不可以。而且标识符区分大小写,并且没有长度限制,但是呢,不能是java语言中的关键字。下面就说几个java中常用的关键字。

——————————————————————————————————————————————————————

    常用的关键字就这些,当然还有很多,我们命名的时候注意下就好。下面说说变量,这东西超级有用,贯穿整个始终,变量就是在程序运行过程中可以改变的量,格式:修饰符+数据类型+变量名+”=“+初始值,当然这里和之前Linux的说明一样,+没被引起来的时候当空格用,变量分类的话大概有两种分法,

按声明位置分为:成员变量(类的内部,方法的外部)

                             局部变量(方法或代码块的内部)

按数据类型划分:基本数据类型:数值型:整数类型(byte,short,int,long)

                                                                    浮点类型(float,double)

                                                      字符型(char)

                                                      布尔型(boolean)

                             引用数据类型:字符串类型(string)

                                                      类(class)

                                                      接口(interface)

                                                      数组

——————————————————————————————————————————————————————

    变量介绍到这之后,就说下常量,这东西更简单了,就是不会变的量,学过数学的都知道x+y=5,这个方程里面,x,y是变量5就是常量,我们无法修改他,不然高考的题还用得着写,比如我们第一个代码里面的hello word就是常量的字符串,下面我们看看该如何定义,还记得我们之前说的变量的格式么,里面有个修饰符,而我们就需要用final修饰符修饰变量,这样变量就成了常量,或许你会有异议,变量是可变的量那么我们就可以用代码修改,那常量定义完为什么不能用代码修改啊,逻辑完全行得通啊,当然逻辑肯定行得通,因为代码是由上到下依次运行,不过我们可以试试,这里就不演示了,让大家自己试试,比如:final a = 1;a = 2;System.out.println(a);我想他会报错的。

    说到输出变量,我就有问题了,我们输出的时候引号中间的部分会原样显示,那么如果要输出引号呢?引号当然不能这么输出了,机器哪有那么聪明,这时候我们就需要转义字符了,比如下面的表,口说无凭,我们来试试吧。

——————————————————————————————————————————————————————

——————————————————————————————————————————————————————

    这些都了解了,我们来个小例子,比如算出一个圆的面积。圆面积=π*r^2,这个公式想必大家都知道,那么我们来看看如何用java代码来实现吧

——————————————————————————————————————————————————————

    整数我们在小学就学习了,那为什么java有那么多类型的整数呢,其实他们是不同的,区别看下面的表就可以一目了然,当然里面的位数不是我们个十百千万的那个位数,而是计算机里面所占的位数,当我们超过大小就要用其他的类型了。

——————————————————————————————————————————————————————

    既然整数有了长度,那么小数就不能例外了。同样长度如下表所示。

——————————————————————————————————————————————————————

    整数和小数都说完了,我们来说说char类型,这东西超级奇怪,只能存入一个字符比如:A或者a,同样他也在计算机中有着自己所占的位数16位。

    我们知道对于计算机而言他们只知道二进制,也就是0和1,他们在计算机硬件里面表示通电或者断电,,或者是:是非,不能多说了,再说就变成哲学了,而java里面也定义了是非也就是是否,我们使用布尔类型来定义,布尔类型只有两个值:true,false,我们习惯叫做真,假。true代表成立,而false则代表失败。

    还有几个数据类型,我们后面会涉及到,数据类型说完之后就说说转换吧,我们知道可以把整数写成小数,也可以把小数写成整数,比如:1和1.00以及1.00写成1,当然这两者兼容,而数据转换最基础的依据就是兼容,所以我们无法把布尔类型转换成整数,除非我们自己定义。

    java中有两种转换方式,分为强制转换以及自动转换。那么什么是自动转换呢,比如我们求圆的面积,我们定义的半径是int,但在计算后得到的面积却是double,这时系统就自动将int类型转换成了double,自动转换除了兼容以外还需要一个条件就是只能从低位转换成高位,这里的位数均为在计算机存储过程中所占的位数,比如我们将32位的int转换成64位的double。

    另一种方式就是强制转换了,用了强制转换我们可以把高位强制转换成低位,当然会损失精度比如:1.1转换成1,下面来看个例子,看看怎么强制转换。

——————————————————————————————————————————————————————

    强制转换也说完了,那么我们来看看java中的算术运算符吧,和数学差不多,java默认也给了我们几个运算符,我们常用的有“+,-,*,/,%”,前面的加减乘除就不用说了,唯一要注意的就是除法中除数不为零,而最后一个则为取余,说白了就是只取除法中的余数。下面看看例子

——————————————————————————————————————————————————————

    java中还有一个神奇的东西自增和自减,这东西可常用,他可以将变量的值自己加1或者减1下面来看看例子。

——————————————————————————————————————————————————————

    是不是超神奇,当然聪明的小伙伴一经发现了端倪,应该和++或者--的位置有关系,没错,当自增或自减运算符出现在变量前面的时候,我们会先进行自增或自减,然后再运行当前语句,而在后面的时候则会先运行语句,在进行自增或自减,对照例子看看是不是呢。

    算术运算符说完了,之后我们来看看,关系运算符,,比如“==,!=,>,>=,<,<=”这几个分别是,等于,不等于,大于,大于等于,小于以及小于等于,和算术运算符一样,关系运算符也需要有两个值进行操作,并且只有同类型的能够比较,而且得到的结果都是布尔类型,我们来看看例子。

——————————————————————————————————————————————————————

    这里大家可能会有疑问,为什么char能和数值类型去比较,这里要引入一个新的东西ascii码,这东西厉害着呢,他把我们用的所有字符都进行了编码,A的ascii码是65,所以大于1。

    逻辑运算符分为两大类,短路和非短路,来看看非短路运算符包括与(&)或(|)非(!),而短路运算符则用两个非短路运算符表示,他们两种有什么区别呢,当非短路运算符(与运算)的判断语句执行的时候,两个操作数均为真时,才判断出结果为真。而短路运算符(与运算)的判断语句执行的时候,当第一个操作数为假那么,再去判断第二个就没有了意义,所以就不回去在判断第二个了。试这个就很简单了,比如:a<2&a++<10以及a<2&&a++<10,大家可以看看结果。

——————————————————————————————————————————————————————

    不知道大家有没有发现,我们之前的运算符都是前后两个运算数进行运算,但是java中有一个三个运算数的运算,我们称之为三元运算符格式为,条件?真表达式:假表达式,这个可能写的不清楚,我们来看看例子

——————————————————————————————————————————————————————

    那么如果同时出现多个运算符怎么办呢,我们先运算哪一个?于是乎我们有了下面的一个图。

——————————————————————————————————————————————————————

    当然我们最常用的还是括号,按顺序括起来什么都解决了。当然里面有很多没有介绍的运算符,遇到的话后面会介绍的。数据类型和运算符就先介绍到这,下面我们来说说分支控制,java中有两种分支控制:条件分支结构(if),开关分支结构(switch)。

    if按照语法格式可分为四种,分别为:if;if-else;if-else if-else,if-else;if(){if-else}-else{if-else},先说下流程if(布尔表达式){代码},如果布尔表达式的值为真,那么运行代码,为假则不运行。当然这么看都白扯,我们直接看看代码。

——————————————————————————————————————————————————————

    这里给大家举个例子,当学生成绩为90分以上的时候输出成绩优秀,90分到70分输出良好,70分到60分输出及格,60分以下显示不及格。

——————————————————————————————————————————————————————

    这里给大家留个任务,使用if(){if-else}-else{if-else}这种格式,完成判断一个整数的奇偶以及是否能被5整除,比如21,最后输出:奇数不能被5整除,这个代码会在最后给出,如果实在想不出可以看看。

    switch语句是一种用来处理多分支流程的语句,格式如下:

        switch(整型/字符表达式)

        {

            case 整型/字符型常量1:语句1;[break;]

            case 整型/字符型常量2:语句2;[break;]

            ……

            case 整型/字符型常量n:语句n;[break;]

            [default:语句n+1;]

        }

    我们来说一下这东西的流程,首先计算switch后面括号里表达式的值,然后在下面的case找与表达式相等的值,之后运行后面的代码,我们需要注意,表达式的返回值必须是整型或者字符型;case子句中的值必须是常量,而且都不相同;default就类似于else,只有所有表达式都不匹配才回执行;break是用来在执行完每一段case后的语句之后,是程序跳出switche语句;下面来看看例子。

——————————————————————————————————————————————————————

    这里有人可能会有疑问,如果把break删掉会怎么样,删掉的话会一直运行到下一个break,如果没有就一直运行完。这样当等于1的时候,后面没有break,会输出1,2,3……,知道switch怎么使用之后,给大家个题,我们来用switch把刚才的成绩那道题进行修改。当然会在最后面给出答案。

    之后就是循环语句了,这东西用处大大的,先来看下第一个while,格式为:

        while(条件)

        {

            语句

        }

    流程为,条件语句为真的时候执行语句内容,然后再次判断,为真继续执行,然后判断,直到为假就不执行了。看个例子

——————————————————————————————————————————————————————

    我们给个实际点的例子,计算1-100的和。

——————————————————————————————————————————————————————

    while语句还有一种形式,do-while,格式如下:

         do

        {

            语句

        }while(条件)

    这种与之前的区别就是,先执行一次语句,然后在判断,为真继续执行并循环,直到为假停止循环。我们看个例子

——————————————————————————————————————————————————————

    while就有这些,下面来看看其他的循环,for循环,for循环的格式为:for(表达式1;表达式2;表达式3){语句},他的流程为,先使用表达式1给循环条件变量赋值,之后依据表达式2判断是否成立,成立的话执行循环体,然后执行表达式3修改条件变量,之后再判断表达式2是否为真,为真则继续运行,为假则跳出。举个例子,我们使用for输出1-10内的偶数。

——————————————————————————————————————————————————————

    使用for的时候要注意,括号内的表达式使用分号分隔,而且不能省略,但我们可以省略表达式,有时候回答道意想不到的效果,也有时候会成了死循环,for可以嵌套使用,练习这个最好的方法就是打印图形,比如:

——————————————————————————————————————————————————————

    当然,有很多可以打印的图形,比如直角三角,等边三角,菱形,空心三角,空心菱形,百度有很多,这里就不一一介绍了。

    下面就来说说刚才的break,和他类似的还有一个continue

——————————————————————————————————————————————————————

——————————————————————————————————————————————————————

——————————————————————————————————————————————————————


——————————————————————————————————————————————————————

——————————————————————————————————————————————————————

    这些就是今天的知识了,下面为之前两道题的答案。

    下面这个代码是if的嵌套使用,判断奇偶且能否被5整除

——————————————————————————————————————————————————————

    下面这个代码是switch完成成绩的评估,给大家一个思路,我们先判断是否符合输入规则,然后将60分一下的全部加入default里面是不是可以少打很多行代码呢,大家来试试吧。

——————————————————————————————————————————————————————

    到这里数据类型,运算符,分支控制就介绍的差不多了,这些是基础还需要大家自己的练习,下一篇文章我们会介绍java的核心,类与对象以及面向对象。

猜你喜欢

转载自blog.csdn.net/g982508295a/article/details/81110725