《Java编程那些事儿23逻辑运算符.docx》由会员分享,可在线阅读,更多相关《Java编程那些事儿23逻辑运算符.docx(24页珍藏版)》请在三一办公上搜索。
1、Java编程那些步儿17一班本数据类型Java,修饰符,父类,子类,public3.5基本数据类型程序中破核心的就是一系列的数据,或者叫程序状态.计I?机为了便利的管理数据,就为数据设定了组类型,这样在为数据安排内存以及操作数据时都比较便利,这就是数据类型的由来.其实现实生活中也存在各种数据类型,例如数字里,字符型等,数字里又可以划分为整数型和小数型,只是没有很可以的划分罢了.在数据类型中,最常用也是最基础的数据类型,被称作基本数据类型.可以运用这些类型的他来代表一些简油的状态。3.5.1 概述学习数据类型的目的就是在须要代表一个数(rt时能够选择合适的类型.当然,有些时帔好几种类型都适合,那
2、就要看个人习惯了.学习数据类型须要驾驭每种数据类型的特征,以及对应的细微环节学问,这样会有助于对类型的选择,所以在初次学习时,须要记忆许多的内容JaVa语言的域本数据类鞭总共有以下8种,下面是依据用途划分出的4个类别:整数型:byte(字节型)、short(短整型)、int(整型)、long(长整Sn小数型:float(单精度浮点型)、double(双精度浮点型)字符型布尔型352整数型整数里是一类代去宗数例的类型。当须要代表,个整数的值时,可以依据须要从4种类盘中选择合适的,假如没有特殊要求的话,一般选择int类型。4种整数型区分主要在毋个数据在内存中占用的空间大小和代我的数(ft的范用.具
3、体说明参存下表:类型名称关键字占用空间(字节)取值范Ia我认值字节里byte1-27-271O短整型short2215-21540整型int4231-2314长整型long8-263-263-10说明:1. JaVa中的整数都足有符号数也就是有正有负.2、默认值指在特定的状况下才自动初始化,具体的状况后续将有叙述.3、程序中的整数数伯默认是Int以及Int以下类型,假如须要书写long型的伯,则须要在数值后面添加字母1.大小与均可.4、程序中默认整数是十进制数字,八进制数字以数字字符0开头.例如016、034等.十六进制数字以数字字符0和字母X(不区分大小写开头,例如OXa八0X12等,1.3
4、.3 小数型小数型是一类代表小数值的类型.当须要代表一个小数的值时,可以依据须要从以E2种类型中选择合适的.假如没有特殊要求.殷选舞double类型.M于小数的存储方式和整数不同,所以小数都有肯定的精度.所以在计曾机中运灯时不师精确,依据制度和存储区间的不同,设计了两种小数类型,具体见下表:类型名称关犍字占用空间(字节)取值他国就认值单精度浮点型float-3.4E*38-3.4E+380.0f双精度浮点型double-1.7E*308-1.7E+3080.0说明:1、取值范围以科学计数法形式迸行描述。2,在程序中,小数的运笄速度要低干整数运算,3、float类型的小数,须要在小数后加字母f.
5、不区分大小写,例如1.Olf.1.3.4 字符型字符型代表特定的某个字符,依据前面介绍的学问,计售机中都是以字符集的形式来保存字符的,所以字符型的值实际只是字符集中的编号,而不是实际代表的字符,由计舞机完成从编号转换成对应字符的工作.Java语吉中为了更加便利国际化,运用Unicode字符集作为默认的字符集,该字符集包含各种语言中常见的字符。在程序代码中,字符运用一对单引号加上须要衣达的字符来标识例如A、a等,当然也可以干脆运用字符编码,也就是一个非负整数迸行衣示.字符型参数表类型名称关键字占用空间(字节)字符型char0216l说明:1、字符型的编号中不包含负数.2、字符型由于存储的是端号的
6、数值,所以可以参加数学运算.3、字符型可以作为JaVa语言中的无符号整数运用.4、字符型的默认伯是编号为。的字符,而不是字符O1.3.5 布尔型布尔型代表逻辑中的成立和不成立.Java沿才中年用关圾字true代表成立,false代表不成立.布尔型是存储逻辑值的类型,其实许多程序中都有逻辑值的概念,JaVa把逻辑的依用布尔里来进行表达,布尔型参数我类鞭名称关键字占用空间(字节)取值范围默认值布尔型booleantrue或falsefalse说明:1、布尔型占用的空间取决于JaVa虚拟机(JVM)的实现,可能是1位也可能是1个字节。1.3.6 小结这里简洁的介绍了8种基本数据类型的基本特征,在实际
7、的程序设计中,可以依据须要选择对应的类型,由于Java语言是-种强类型的语言,所以在运用数据类型是须要当心。JavaMi程那晚事儿18交量和常量Java,常,3.6 变麻和常和在程序中存在大量的数据来代表程序的状态,其中有些数据在程芹的运行过程中值会发生变史.有些数据在程序运行过程中就不能发生变更.这些数据在程序中分别被叫做变量和常量.在实际的程序中,可以依据数据在程序运行中是否发生变更,来选择应当是运用变埴代表还是常量代表.3.6.1 变业变Ift代表程序的状态.程序通过变更变埴的侪来变更整个程序的状态,或者说得更大一些,也就是实现程序的功能逻辑.为了便利的引用变量的值,在程序中须要为变埴设
8、定一个名称,这就是变量名.例如在2D嬉戏程序中.须要代表人物的位置,则须要2个变出.一个是X坐标,一个是y坐标.在程序运行过程中,这两个变盘的伯会发生变更.由于JaVa语言是一种强类型的语言,所以变埴在运用以前必需首先声明,在程序中声明变盘的语法格式如下:数据类型变收名称:例如:intx:在该语法格式中,数班类型可以是JaVa语言中随意的类型,包括前面介绍到的权本数据类型以及后纹将要介绍的II合数据类鞭。变埴名称是该变法的标识符,须要符合标识符的命N规则,在实际运用中该名称一般和变St的用途对应.这样使于程序的阅读.数据类型和变收名称之间运用空格进行间隔空格的个数不限,但是至少须要1个.语句运
9、用。”作为结束.也可以在声明变量的同时,设定该变量的值,语法格式如下:数据类型变St各称ffi:例如:IMX=IO:在该语法格式中,前面的谱法和上面介绍的内容一样后续的“代表赋值,其中的“值”代发具体的数据,在该语法格式中,要求值的类型须要和声明变Ift的数据类型一样.也可以一次声明多个相同类里的变呈,语法格式如卜.:数据类鞭变量名称1,变量名称2.变量名称n:例如:intx.,z:在该语法格式中,变量名之间运用分隔,这里的变盘名称可以有的意多个.也可以在声明多个变眼时对变量进行赋值,语法格式如下:数据类型变H名称I=值1,变属名称2=值2,变信名称n=伯n:例如:intx=10,y=20.z
10、=40:也可以在声明变见时,有选择的进行赋(ft,例如:intx,v=10z:以上语法格式中,假如同时渣明多个变杂,则要求这些变心的类型必需相同,黄如声明的变减类里不同,则只须要分开声明即可,例如:intn=3:booleanb=true:chare;在程序中,变量的假代表程序的状态,在程序中Ur以通过变愤2称来引用变量中存储的值.也可以为变盘重新赋值.例如:intn=5;n10:在实际开发过程中,须要声明什么类型的变局,须要声明多少个变量,须要为变景赋什么数值,都依据程序逻辑确定,这里列举的只是表达的格式而已。3.6.2 常置常量代表程序运行过程中不能变更的值.常从在程序运行过程中主要仃2个
11、作用:代表常数,便F程序的修改增加程序的可读性常珏的语法格式和变增类型,只须要在变量的语法格式前面添加关键字final即可。在Java编码规范中,要求常盘名必需大写.则常状的语法格式如下;final数据类型常量名称,值:final数据类型常瘠名称1=ftl.常景名称2=值2,常量名称n=值n:例如:finaldoublePl=3.14:finalcharMA1.E三lMFEMA1.E三F:在JaVa语法中,常鹏也可以首先声明,然后再进行超伯,但是只能赋值一次,示例代码如卜:finalitUP:UP=I:常尿的两种用途对应的示例代码分别如下:代表雷数finaldoublePl=3.14:intr
12、=5:doubleI=2Pl4r:doubles=Pl*rr;在该示例代码中,常盘Pl代表数学上的nt,也就是圆周率,这个是数学上的常数,后续的变量:r代表半径,I代表切的冏长,S代表圆的面帜。则IYM婴增加科序计算时的的”则乂须骁修改PI的(i3.14为3.14159264海编许程序,期后续的数值自动发生变更,这样使代码简洁楼改,便于维护.墙加程序的可读性intdirection:finalintUP=1;finalintDOWN=2:finalint1.EFT=3:finalintRIGHT=4:在该示例代码中,变量direction代表方向的值,后续的四个常埴UP、DOWN.1.EFT和
13、RlGHT辨别代表上下左右.其数值分别是1、2、3和4.这样在程序阅读时.可以提高程序的可读性.3.6.3 语句块在程序中,运用一对大括号包含的内容叫做语句块,语句块之间可以相互战套,做套的层次没有限制,例如:(inta;)语句块的嵌套:(intb:(chare;以上代码只是演示谙法,没有什么逻辑意义.在后续的语法介绍中,还会有语句块的概念,就不再曳史介绍了.3.6.4 变埴的作用范围每个变麻都有特定的作用范围,也叫做有效范纲或作用域.只能在该范困内运用该变质.否则将提示语法错误,通常状况下,在一个作用范围内部,不能声明名琳相同的变最。变出的作用范附指从变量声明的位置起先,始终到变量声明所在的
14、语句块结束的大括号为止.例如以下代码:inta=10;a三2;chare:)在该代码中,变届a的作用范围即从第三行到第五行,变尿c的作用范围即从第六行到第七行。3.6.5 常量的作用范围常城的作用范用和变Ift的作用范国规则完全一样.3.6.6 总结对于变量和农业的内容就介绍这么,下面是一个完整的代码,可以在JDK或EdiPSe中进行编译和运行.代码文件名为VariableAndCOnSt.java,示例代码如下:publicclassVariabIeAndConstfpublicstaticvoidmain(String(args)intn=0:charc=System.out.printl
15、n(n):n=10;System.out.println(n):System.out.println(c):说明:在该代码中,SyStem.out.Primln的功能是怆出变量中存储的1JaVa编程那些事儿19一数据类型转换Java,数据类型转换3.7 数据类型转换Java语吉是一种强类型的谙古.强类型的语言有以下几个要求:变量比常量必需有类型要求声明变屈或常尿时必需声明类型,而且只能在声明以后才能运用.赋值时类型必需一样伯的类型必需和变属或常限的类型完全一样.运笄时类型必需一样参加运算的数据类型必需一样才能运算.但是在实际的运用中,常常须要在不同类型的值之间进行操作,这就须要一种新的语法来适
16、应这种须要,这个谙法就是数据类型转换.在数值处理这部分,计算机和现实的逻辑不太一样,对于现实来说,1和IQ没有什么区分,但是对于计算机来说,1是整数类型,而IQ是小数类型,其在内存中的存储方式以及占用的空间都不一样.所以类型转换在计驾机内部是必需的“Java谱才中的数据类型转换有两种:自动类型转换编译器自动完成类型具换,不须要在程序中端万代码.强制类型转换强制撇译器进行类型转换,必需在程序中编耳代码.由于基本数据类型中boolean类型不是数字型,所以基本数据类型的传换是出了boolean类型以外的其它7种类型之间的转换。下面来具体介绍两种类型转换的规则、适用场合以及运用时须要留意的问题。3.
17、7.1 自动类型转换自动类型梏换,也称隐式类型犯换,是指不须要书写代玛,由系统自动完成的类型转换,由于实际开发中这样的类型转换许多,所以Java语言在设计时没有为该操作设计语法.而是由JVM自动完成.转换规则从存储范困小的类卡到存储数的大的类型.具体规则为:byte-*short(char)-int-long-float-*double也就是说byte类型的变量可以自动转换为short类型,示例代码:byteb=10:shortsh=b:这里在赋值时JVM首先将b的值也换为ShOrt类蟹,然后再赋值给Sh,在类型杼换时可以跳动.示例代码:bytebl=100;intn三bl:留念问题在整数之间
18、进行类型转换时,数值不发生变更.而拘整数类里.特殊是比较大的整数类里传换成小散类型时,由于存储方式不同,有可能存在数战精度的投失.强制类型转换,也称显式类型转换.是指必需书写代码才能完成的类型转换.该类类型转换很可能存在精度的损失,所以必需书写相应的代码,并且能然忍受该种损失时才进行该类里的转换。转换规则从存储范用大的类型到存储数围小的类型。具体规则为:double-float-long-int-short(Char)-byte语法格式为:(转换到的类型)须要转换的l示例代码:doubled=3.10:intn=(int)d;这里将double类型的变后d强制转换成int类型,然后贼(ft给变
19、mn.须要说明的是小数强制转换为整数,采纳的是“去1法,也就是无条件的舍弃小数点的全部数字,则以上转换出的结果是3.整数强制忖换为整数时取数字的低位,例如int类鞭的变录转换为byte类型时.则只去int类型的低8位(也就是最终一个字节的值.示例代码:intn三123:byteb=byte)n;intm=1234:bytebl=(byte)m:留意问题强制类型转换通常都会存储精度的损失,所以运用时须要满做.3.7.2 其它后续的复合数据类型,如类和接U等,也存在类似的转换,Java编程那些事儿20空白、语句结束和注柞Java3.8 空白在前面的内容中,已经介绍了在编写代码中,总词和单词之间须要
20、运用空格进行间隔,至于空格的数量则不限制。而实际的编码中,为了使代码的结构清晰,一般须要在代码的前面加入肯定数收的空格.例如如下格式:publicclassBlankpublicstaticvoidmain(Stringargs)intn:(n10:System.out.println(n):在该代码中,除了第一行和坦终一行外,每行都包含肯定数收的空格,这种编码的格式称为代码缩进.在实际代码中,只要存在包含关系,则代码就应当缩进,语句块是最典里的包含关系之一。说明;在编译时,衽行起先的空格都会被忽视掉,3.9 讲句结束Java谙法中.语句以“:”作为行结束符.例如:intn=2;通常状况下,代
21、码中卷行只写一句代码,但是也可以写多句,例如:Intn=2:byteb=10;但是一般为了代码结构清只在一行中书写一句代码.有些时候代码本身比较长,则也可以把一句代码写在多行,而代码语句结束的地方书写一个:-即可。在实际代码中,一般大括号起先和结束的地方,以及大部分小括号结束的地方都不须要书写“:-来进行结束.3.10 注驿注林(comment)是时代码功能和用途的说明,在程序中编写适当的注样,将使程序代码更简洁阅读,增加代码的可维护性。注锋在程序编译时称会被忽视,所以注择不会增加class文件的大小.JaVa语言中注律的语法有三种:单行注修、多行注择和文档注料,3.10.1 单行注择单行注择
22、指只能书写一行的注择。单行注择属于注择中最简洁的语法格式,用于时于代码进行简洁的说明,例如变盘功能等.单行注徉的语法格式为:注徉内容注祥以两个斜跳起先,该行后续的内容都是注拜的内容,注择内容不能换行。单行注择般书写在须要说明的代码的上一行,或者该行代码的结束处,示例结构如下:循环变身inti=O:charsex:性别3.10.2 实行注择多行注择指可以书n随意多行的注择。多行注籽一般用于说明比较困难的内容,例如程序逻辑或律法实现原理等.笠行注林的语法格式为:注和内容7注徉以一个斜战和一个星号起先,后续是注择内容,注样内容可以书写随意多行,班终注择以一个星号和一个斜城结尾。许多多行注称在每行以星
23、号起先,这个不是语法必需的.3.10.3 文档注择文档注择指可以被提取出来形成程序文档的注称格式,这是JaVa语吉有特色的注择格式.一依对于程序程序的结构进行说明,例如类、同性、方法和构造方法iS行说明,这些慨会在后续将具体介绍.文档注释的语法格式为:/*注择内容/注律以一个斜线和两个星号起先,后续是注择内容,注择内容可以书写随意多行,最终注称以一个星号和一个斜线结尾.在后续内容中还将完班该注样的语法格式。3.10.4 其它在规范的代码中,股有10%20%的注和,也就是每100行代码中包含1020行注林的内容,但是国内许多开发公司都远远达不到这个要求,为外须要特殊留意的是,在实际的项目开发中,
24、在修改代码后,肯定要对应的修改注称的内容,保持代码和注群内容的同步。JaVa编程那些瑛儿21一一豫术运算符Java,运算符,算数运算符,Java基础第四余运算符计算机,顾名思义,就是计算的机器,所以在编程中,也要进行大破的计算(运算:),运算的符号简称为运算行。由于计算机可以进行各种运算,所以供应了许多的运号符号,这些运算符号一部分是现实里常常运用的,也有不少是计算机中新增的.学习运算符.首先要驾驭每种运舞的运算规则,然后在适当的时候运用对应的运尊符.这须要对于运算符最好的熟识,并具备肯定的计算机基础学问,运算符的种类许多,为了便利学习,以卜依据类别来进行介绍。4.1 算术运?Z符蚌术运算符,
25、也称数学运算符,是指进行算术运蚱的符号,语法中对应的符号、功能以及说明参百下表表4-1算术运算符符号名称功能说明+Jjii加法运算减减法运算乘乘法运算除除法运算%取余求两个数字相除的余数在算术运算符中,+、和/的运笄规则和数学基本相同,在四则运算中,乘除优先于加减,计算时依据从左向右的依次计算.不同的地方在于:程序中乘号不能省略,在数学上可以写V=2x,但是程序中必窗写成y=2运算结果的类型和参加运算的类型中最高的类型一样.例如整数加整数还是整数.影响最大的是除法,整数除整数潜果还是整数,例如Ioa的结果是3.而不是3.333.接着来说说取余运算符,的功能是取两个数字相除的余数,例如10%3表
26、示计算10除以3的余数.则结果应当是1.收氽运算在箱程中的用途也比较大,比较常见的用途有:限制现则变更,限制l机数字的区间等.算术运募符基本运用的示例代码如F:intn=3+5:inta=10;intb=20:intc=a*b:doubled三100.2:doubledl=d+a;在算术运算符郃分,须要特殊留意的一个语法现象是“晋升二杼升指低于Mt的3种数字类型(byte,short和ChaD进行算术运算后,玷果会自动提升成Im类型。示例代码如下:bytebl三10:byteb3三blb2:语法fft误类型不匹配intn=bl+b2:或者byteb3=(byte)(blb2):在程序中运用。术
27、运舞符实现程序中的数学运算在运算时也可以加入小括号和教学一样,在程序中也是先计算小括号内部的,然后再计算小括号外剖的内容,示例代码如下,inta=l:intb=2:intC=3:intd三ca+b)+c;另外一个须要跑意的就是,变成在计豫时必需被赋值,否则干脆报语法错误,例如:intn:intm=2*n:Java编程那些事儿22比较运算符Java,比较运算符,运算符4.2 比较运算符比较运修符实现数据之间大小或相等的比较.比较运舞符运算的结果是一个boolean类型的值,假如比较结果成立则为true.否则为false.Java沿言中比较运算符的表示和功能见下表4-2.表42比较运算符符号名徐功
28、能说明大于比较左ft!数字是否大于右侧数字大于等于比较左俯数字是否大于成等于右侧数字=的意刖是大于或等于,两籽成立一个即可,所以5=S成立.在数学上去示的区间1,10),也就是数字大于等于1同时小于10.在程序中不能写成如下格式:l=n10,这种H写在语法上是格误的,假如须要表达这种区间,则参看43逻辑运算符实现部分.推断相等的符号是两个等号,而不是一个等号,这个须要特殊当心.比较运算运用的示例代码如下;inta=10;booleanb3):该条件成立,则符值true赋值给变拉bbooleanc=(b=true):条件成立,结果为true在实际代码中,数值、变量以及运比结果都可以干腌参加比较,
29、只是程序中为了增加可读性,有些时候须要将比较分开进行书耳。比较运算符是程序设计中实现数据比较的基础.也是许多逻辑实现的基础,在程序逻辑中,常常通过比较肯定的条件,来推断后续的程序该如何执行.JaVa编程那些事儿23设轼运算符Java,运算符,算数运算符,Java基础,嵬*运算符4.3逻辑运算符设软运算符是指诳行逻辑运算的符号。逻辑运算主要包括与(and)、或(Or)和非(not)三种,在程序中主要用来连接多个条件,从而形成更加困难的条件。逻辑运尊符的运算结果是boolean类型.参加逻辑运算的数据也必需是blean类型.关于逻辑运算符的种类和说明参青衣4-3.表4-3逻辑运算符符号名称功能说明
30、&逻辑与两个条件同时为true才为true.否则为falseIl定耕或两个条件有一个为true则为true.否则为falseI茂物非只操作一个数据,时数据取反逻辑运算符运用示例代码:booleanbl三true:booleanb2=false:booleanb3=bl&b2;则b3的做是falseb3=blHb2;则b3的值是trueb3-!bl:则b3的值是false在实际程序中,可以依据逻希的须要运用对应的逻辑运算符号,实际运用示例:表示变量;n是否属Ho,10)区间intn=4;booleanb=0&n10):对F变量n来说,只要n同时湎息大于等于等,且小于10,则位于0,10)区间,由
31、于程序中无法书写(k=nvl这样的条件,则必需通过逻耕运算符进行连接.表示变显n不属于0,10)区间一种写法是:intn=4:booleanb=!(=0)&ns这里,对干由于该区间的条件取反则可以获过不屈于该区间的条件.另一种写法是:intn=4:booleanb=n=10):这里做了一个简洁的变通.假如变量n不属于该区间则在数学上只须要满意n小于0或者n大于等于10的任何一个条件即可,这样的或者关系在程序中实现时运用逻辑或实现.在程序设计中,依据逻轼须要,运用对应的逻辑运算符,可以实现相对比较困难的殂合条件,从而实现对应程序的功能。最终说一下&和&的区分,其实在进行逻辑与运算时,既可以运川&
32、也可以运用&.在功能上本身没有区分,两省区分的位置在,对于&关说,假如左恻条件为false,也会计豫右何条件的值,而对于&来说,黄如左侧的条件为false,则不计算右侧的条件,这种现象被林作短路现象。示例代码:intn三-1:booleanbl=(n=0)&(n=0)&n10);则对于其次行代码来说,两个条件都将被计算,而对于第三行代码来说.因为n*0这个条件不成立,则DV10根本不会被执行当然,两者窗到的最终结果是样的对于现在的代码来说,区分不大,但是假如后续的条件是一个方法(方法的概念后续将介绍到),则将膨响程序选辑。脸证&和&功能的示例代码如下:publicclassTestpublicstaticvoidmain(String(args)intn=10:booleanb三n8)&(!0;intm三20:booleanbl=(m8)&;System.out.println(n):System.out.printin(m):