java学习-基础第03章语法入门_第1页
java学习-基础第03章语法入门_第2页
java学习-基础第03章语法入门_第3页
java学习-基础第03章语法入门_第4页
java学习-基础第03章语法入门_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

J2SE(JDK5以上)开发讲师::----为你Java的梦想插上翅膀第3章----为你Java的梦想插上翅膀语法入门第一个Java程序文本模式下与程序互动数据、运算流程控制第一个Java程序定义类(Class)定义区块(Block)定义main()方法(Method)撰写语句(Statement)public

class oWorld

{public

static

void

main(String[]

args)

{System.out.println("嗨!

第一个Java程序!");}}----为你Java的梦想插上翅膀为程序加入注释----为你Java的梦想插上翅膀单行注释//这是一个单行注释多行注释/*这是一个多行注释*/文档注释/**这是一个文档注释*/为程序加入注释----为你Java的梦想插上翅膀不能用嵌套方式来撰写多行注释/*注释文字1……bla…bla/*注释文字2……bla…bla*/*/多行注释可以包括单行注释/*注释文字1……bla…bla//注释文字2……bla…bla*/谜题15为程序加入注释----为你Java的梦想插上翅膀在Java的源文件中无论你加入多少句注释,编译后的类文件大小都不会有影响,都和不加入注释编译后的类文件一样大。因为这些注释都不会被编译到类文件中。所以Java的注释也不会影响到Java程序的执行结果。使用Scanner取得输入----为你Java的梦想插上翅膀在J2SE

5.0中,可以使用

java.util.Scanner类取得使用者的输入创建Scanner对象Scanner

scan

=

new

Scanner(System.in);可以使用这个工具的next()方法,来取得用户的输入字符串(只能是连续输入的字符串)System.out.println(“请输入你的名字:");String

name=scan.next();nextByte(),nextInt(),nextLong(),nextFloat(),nextDouble()等方法使用Scanner取得输入----为你Java的梦想插上翅膀标准输入输出串流System类中的静态对象out,标准输出流out提供标准输出流(Stream)输出通常对应至显示输出(终端机输出)可以将输出重新导向至一个文件javaJavaoWorld>oWorld>>o.txt(定向输出)o.txt(追加重定向输出)System类中的静态对象in,标准输入流in在程序开始之后它会自动开启,对应至键盘或其它的输入来源----为你Java的梦想插上翅膀标准输入输出串流----为你Java的梦想插上翅膀标准错误输出流err在程序执行后自动开启,将指定的字符串输出至显示设备或其它指定的装置err会立即显示错误信息err输出串流的信息不会被重新导向System.out.println("使用out输出讯息");System.err.println("使用err输出讯息");java

ErrDemo

>

ErrDemoResult.txt使用err输出讯息输出字符串的方法,在JDK5之前主要是:----为你Java的梦想插上翅膀print()

//System.out.print();println()

//System.out.println();在JDK5之后又增加了:printf()

//System.out.printf()print()与println()的区别是println()在输出字符串后会自动进行换行回车的操作。

printf()可以进行格式化字符串的输出输出格式控制控制字符作用\\反斜杠\'单引号'\"双引号"\uxxxx以16进位数指定Unicode字符输出\xxx以8进位数指定Unicode字符输出\b一个字符\f换页\n换行\r游标移至行首\t跳格(一个Tab键)----为你Java的梦想插上翅膀输出格式控制----为你Java的梦想插上翅膀若是使用J2SE5.0或更高的版本//输出19的十进制表示System.out.printf("%d%n",

19);//输出19的八进制表示System.out.printf("%o%n",

19);//输出19的十六进制表示System.out.printf("%x%n",19);格式字符作

用%%在字符串中显示%%d以10进位整数方式输出,提供的数必须是Byte、Short、Integer、Long、或

BigInteger%f将浮点数以10进位方式输出,提供的数必须是Float、Double或BigDecimal%e,

%E将浮点数以10进位方式输出,并使用科学记号,提供的数必须是Float、Double或BigDecimal%a,

%A使用科学记号输出浮点数,以16进位输出整数部份,以10进位输出指数部份,提供的数必须是Float、Double、BigDecimal%o以8进位整数方式输出,提供的数必须是Byte、Short、Integer、Long、或

BigInteger%x,

%X将浮点数以16进位方式输出,提供的数必须是Byte、Short、Integer、Long、或BigInteger%s,

%S将字符串格式化输出%c,

%C以字符方式输出,提供的数必须是Byte、Short、Character或Integer%b,%B将"true"或"false"输出(或"TRUE"、"FALSE",使用%B)。另外,非null值输出是"true",null值输出是"false"%t,%T输出日期/时间的前置,详请看

API文件----为你Java的梦想插上翅膀输出格式控制可以在输出浮点数时指定精度System.out.printf("example:%.2f\n",

19.237);example:19.24

(采用四舍五入)可以指定输出时,至少要预留的字符宽度System.out.printf("example:%6.2f%n",

19.234);example:

19.23补上一个空白

端----为你Java的梦想插上翅膀基本的数据类型(Primitive

type)整数字节(byte)专门 位数据占一个字节

(-128至127)短整数(short)(占2个字节)(-32768至32767)整数(int)(占4个字节)07)(-

47)长整数(long)(占8个字节)(通常后面加L)(-

至浮点数浮点数(float)(占4个字节)

(通常后面加F)(1.401298e-45至3.402823e+38)(有效小数位6-7位)双精度浮点数(double)(占8个字节)

(通常后面加D)(4.900000e-324至1.797693e+308)(有效小数位15位)----为你Java的梦想插上翅膀基本的数据类型(Primitive

type)字符(char)采Unicode编码前128个字符编码与ASCII编码兼容每个字符数据类型占两个字节可

的字符范围由'\u0000'到'\uFFFF‘无论是一个数字,一个字母还是一个汉字在Java中都是一个字符,字符用单引号引起‘A’‘1’‘你’型(boolean)占内存2个字节可

true与false两个数值,在Java中 型只有true和false两个值,没有0和1,yes和no.----为你Java的梦想插上翅膀基本的数据类型(Primitivetype)整形中最常使用的是int类型,浮点型中最常使用的是double类型Java是面 象的程序语言,但Java的基本数据类型在Java中不是以对象的形式出现的Java的基本数据类型在不同的平台上数据长度是

的。如果直接 数据3.2这样的浮点数,表示的数据类型为double类型,可以通过在数据后面加上F或D,来明确数据类型。Java有一个任意精度的算术包,称为“大数字”。不过,虽然名字叫做大数字,“Bignumbers”并不是新的Java类型,而是Java对象。后面

会详细讲解。----为你Java的梦想插上翅膀变量、常量Java是强类型语言,在Java中要使用变量,变量名称与数据类型来使用int、float、double、char等变量名称并指定其数据类型不可以使用数字作为开头不可以使用一些特殊字符,像是*&^%之类不可以与Java内定的

同名必须先int

age;double

score;//

一个整数变量//

一个双精度浮点数变量----为你Java的梦想插上翅膀变量、常量鼓励用清楚的名称来表明变量的作用int

ageOfStudent;int

ageOfTeacher;不可以 变量后,而在未指定任何值给它之前就使用它编译程序在编译时会回报这个错误variable

var

might

not

have

been

initialized变量没有被初始化----为你Java的梦想插上翅膀变量、常量----为你Java的梦想插上翅膀使用「赋值运算符」'='来指定变量的值int

ageOfStudent

=

5;double

scoreOfStudent

=

80.0;char

levelOfStudent

=

'B';System.out.println("年級\t得分\t等級");System.out.printf("%4d\t

%4.1f\t

%4c",ageOfStudent,

scoreOfStudent,

levelOfStudent);变量、常量变量名称的同时,加上“final”来限定这个变量一但指定了值,就不可以再改变它的值final

int

maxNum

=

10;maxNum

=

20;cannot

assign

a

value

to

final

variable

maxNum不能给常量maxNum指定值----为你Java的梦想插上翅膀算术运算----为你Java的梦想插上翅膀加(+)、减(-)、乘(*)、除(/)、求余(取模)运算符(%)System.out.println(1

+

2

*

3);System.out.println(1+2+3

/

4);System.out.println((double)(1+2+3)

/

4);算术运算----为你Java的梦想插上翅膀这段程序会打印出什么结果?int

testNumber

=

10;System.out.println(testNumber

/

3);使用下面的方法int

testNumber

=

10;System.out.println(testNumber

/

3.0);System.out.println((double)

testNumber

/

3);算术运算----为你Java的梦想插上翅膀“+”运算符是唯一具有两种意义的运算符,对于数据,表示求和操作。对于字符串,表示字符串的连接(“5”+6+1的结果为

“561”)。“/”当除操作符用于两个整数时,就表示整

数除法,结果为整数,否则表示浮点数除法,结果为浮点数。用0除整数将产生异常,用0除浮点数将得到一个无穷大的值或NaN非数字。byte,short,char的运算会先转换为int运算算术运算将精确度大的值指定给精确度小的变量时,由于在精确度上会有遗失,编译程序会认定这是一个错误int

testInteger

=

0;double

testDouble

=

3.14;testInteger

=

testDouble;System.out.println(testInteger);possible

loss

of

precision

(精度损失)found :

double----为你Java的梦想插上翅膀required:

int(发现double类型)(需要int类型)testInteger

=

testDouble^1

error算术运算----为你Java的梦想插上翅膀必须明确加上转换的限定字,编译程序才不会回报错误(强制类型转换)testInteger

=(int)

testDouble;‘%’运算符是取余运算符count

=

(count

+

1)

%

360;Java程序语言的一个既定目标是可移植性。不管是在哪个虚拟机上运行,同一个计算应该产生相同的结果。然而,要对浮点数的算术运算实现可移植性却极为 。double类型使用64位 数值,但有些处理器使用的却是80位浮点寄存器。这些寄存器为计算的中间结果增加了精度。比如,考虑下面的计算:double

w=x*y/z;许多In 处理器首先计算x*y,把结果放在80位的寄存器中;然后除以z,最后再把结果截断为64位。这样做会产生准确的结果,还能避免指数溢出。但是这个结果就可能与自始至终都在64位寄存器机器上计算所得到的结果不同。因此Java虚拟机的初始规范规定所有的中间计算都必须进行截短。但这么做遭到了数字计算团体的 。截短计算不仅可能会产生溢出,而且在计算速度上还比进行更精确的计算速度要慢(因为截短也需要时间)。为此,Java语言进行了升级,承认在最优性能和最佳可再生性方面相互 的 要求。但对于用strictfp关键字标记的方法必须使用严格的浮点运算,以产生可再生的结果。如果strictfp用在方法上,那么该方法中的所有指令都使用严格的浮点运算。如果给一个类加上strictfp,则它的

所有方法都是用严格的浮点计算。----为你Java的梦想插上翅膀比较、条件运算大于(>)、不小于(>=)、小于(<)、不大于(<=)、等于(==)、不等于(!=)System.out.println("10>5结果"+(10>5));System.out.println("10>=5结果"+(10>=5));System.out.println("10<5结果"+(10<5));System.out.println("10<=5结果"+(10<=5));System.out.println("10==5结果"+(10==5));System.out.println("10!=5结果"+(10!=5));code\ch03\Compar--i-s-为o你nJOavpae的r梦a想t插o上r翅.膀java比较、条件运算----为你Java的梦想插上翅膀条件运算符条件式?条件式成立返回的值:条件式失败返回的值System.out.println("该生是否及格?"+(scoreOfStudent>=60?'是':'否'));System.out.println(“是否为奇数?"+(number%2!=0?'是':'否'));逻辑、位运算----为你Java的梦想插上翅膀「与」(&&)、「或」(||)、「非」(!)int

number

=

75;System.out.println((number

>

70

&&

number

<

80));System.out.println((number

>

80

||

number

<

75));System.out.println(!(number

>

80

||

number

<

75));&(AND)、|(OR)、^(XOR异或)与~(补码)System.out.println("0AND0\t\t"+(0&0));System.out.println("0AND1\t\t"+(0&1));System.out.println("1AND0\t\t"+(1&0));System.out.println("1AND1\t\t"+(1&1));byte

number

=

0;System.out.println((int)(~number));----为你Java的梦想插上翅膀位运算求奇偶----为你Java的梦想插上翅膀^(XOR)加密----为你Java的梦想插上翅膀逻辑、位运算----为你Java的梦想插上翅膀左移(<<)、右移(>>)、>>>运算符int

number

=

1;System.out.println(

"2的0次:

"

+

number);number

=number

<<

1;System.out.println("2的1次:

"

+

number);number

=

number

<<

1;System.out.println("2的2次:

"

+

number);number

=

number

<<

1;System.out.println("2的3次:"

+

number);00000001→

100000010→

200000100→

400001000→

8递增、递减运算----为你Java的梦想插上翅膀递增、递减运算符int

i

=

0;System.out.println(++i);System.out.println(--i);将递增或递减运算符写在变量之前,是先加一(减一)运算,然后赋值。int

i

=

0;int

number

=

0;number=++i; //相当于i=i+1;

number=i;System.out.println(number);number=--i;

//相当于i=i-1;

number=i;System.out.println(number);递增、递减运算----为你Java的梦想插上翅膀递增或递减运算必须是对变量进行,不能这样操作5++将递增或递减运算符写在变量之后,是先赋值,然后进行加一(减一)运算。int

i

=

0;int

number

=

0;number=i++;

//相当於number=i;

i=i+1;System.out.println(number);number=i--;

//相当于number=i;

i=i-1;System.out.println(number);递增、递减运算----为你Java的梦想插上翅膀指定运算符范

例结

果+=a

+=

ba=

a+

b-=a

-=

ba=

a-

b*=a

*=

ba=

a*

b/=a

/=

ba=

a/

b%=a%=

ba=

a%

b&=a

&=

ba=

a&

b|=a|=

ba=

a|

b^=a

^=

ba=

a^

b<<=a

<<=ba

=

a

<<

b>>=a

>>=

ba

=a

>>

b递增、递减运算请体会下面两段代码的差别----为你Java的梦想插上翅膀if条件式----为你Java的梦想插上翅膀语法复合语句句if(条件式)语句句一;else语句句二;if(条件式){语句句一;语句句二;}else{语句句三;语句句四;}if条件式----为你Java的梦想插上翅膀Scanner

scanner

=

new

Scanner(System.in);System.out.print("请输入数字:");

int

input=scanner.nextInt();int

remain=input%2;//求除2的余数if(remain==1)//如果余数为1System.out.println(input+"为奇數");elseSystem.out.println(input+"为偶數");if条件式if中再设定执行的条件if(条件式一){语句句一;if(条件式二)语句句二;语句句三;}if(条件式一){语句句一;//其它语句句}

elseif(条件式二)语句句二;if(条件式一){语句句一;//其它语句句} else

if(条件式二)语句句二;----为你Java的梦想插上翅膀if条件式----为你Java的梦想插上翅膀Scanner

scanner

=

new

Scanner(System.in);System.out.print("输入分数:");int

score

=

scanner.nextInt();if(score>=90)System.out.println("得A");else

if(score

>=

80

&&

score

<

90)System.out.println("得B");else

if(score

>=

70

&&

score

<

80)System.out.println("得C");else

if(score>=60

&&

score<70)System.out.println("得D");elseSystem.out.println("得E(不及格)");switch条件式----为你Java的梦想插上翅膀switch的语法架构switch(变量名称或表达式){

case符合数字或字符:语句句一;break;case符合数字或字符:语句句二;break;default:语句三;}case只能比较符合的数字(byte,short,int)和字符还有枚举类型。Scanner

scanner

=

new

Scanner(System.in);System.out.print("请输入分數:");

intscore=scanner.nextInt();intlevel=(int)

score/10;switch(level)

{case

10:case

9:System.out.println("得A");break;case

8:System.out.println("得B");break;case

7:System.out.println("得C");break;case

6:System.out.println("得D");break;default:System.out.println("得E(不及格)");----为你Java的梦想插上翅膀for循环----为你Java的梦想插上翅膀基本语法for(初始式;判断式;递增式){语句句一;语句句二;}for循环for循环的运行,首先会先执行第1步,初始化i值,但这里第1步只会执行一次。然后执行第2步,判断i的值是否小于9,如果条件成立则执行第3步,打印输出i的值。然后执行第4步,对i的值加1。接下来执行第2步,判断i是否小于9,如果小于9则执行第2步,第3步执行完毕后,继续执行第4步,对i值加1,然后执行第2步,判断i的值是否小于9,如果小于依旧按照上诉步骤执行,否则结束循环。System.out.println(i);}1

2

4for(int

i=0;i<9;i++){3----为你Java的梦想插上翅膀(1)int

i=0;第一步

(2)i<9;第二步(3)Systemm.out.println(i);第三步

(4)i++;第四步for循环求九九表----为你Java的梦想插上翅膀while循环----为你Java的梦想插上翅膀Scanner

scanner

=

new

Scanner(System.in);intscore=

0;intsum

=0;intcount=

-1;while(score

!=

-1){count++;sum

+=

score;System.out.print("输入分数(-1结束):");score

=

scanner.nextInt();}System.out.println("平均:"+(double)sum/count)do

while循环----为你Java的梦想插上翅膀Scanner

scanner

=

new

Scanner(System.in);int

input

=

0;int

replay

=

0;do{System.out.print("输入整数值:");input=scanner.nextInt();System.out.println("输入数为奇数?"+((input%2

==

1)

?

'Y':'N'));System.out.print("继续(1:继续0:结束)?");replay

=

scanner.nextInt();}

while(replay

==

1);while循环与do

while循环的差别----为你Java的梦想插上翅膀while循环是先判断,再执行,执行0到n次。

do

while循环式先执行后判断,至少执行1次,是1到n次。break、continue----为你Java的梦想插上翅膀break可以离开目前switch、for、while、dowhile的区块for(int

i

=

1;

i

<

10;

i++)

{if(i

==

5)break;System.out.println("i

=

"

+

i);continue只}会结束其之后区块的语句句,并跳回循环区块的开头继续下一个循环for(int

i

=

1;

i

<

10;

i++)

{if(i

==

5)continue;System.out.println("i

=

"

+

i);Break离开当前}整个循环。Continue结束本次循环,但继续下面的循环。break、continuebreak与continue配合

使用,本来break只会离开for循环,设置

与程序块,则可以离开整个程序块。continue也有类似的用法,只不过

只能设置在for之前。----为你Java的梦想插上翅膀break、continuebreak与continue还可以配合使用back1:for(int

i

=

0;

i

<

10;

i++){back2:for(int

j

=

0;

j

<

10;

j++)

{if(j

==

9)

{continue

back1;}}System.out.println("test");}----为你Java的梦想插上翅膀通常不建议使用的形式,因为这样会使程序的可读性很差。 通常不用 也能很好的实现功能。Java中保留了goto语句,只不过没有实现它的功能。----为你Java的梦想插上翅膀常用数学函数----为你Java的梦想插上翅膀java.lang.Math类以静态方法的形式提供了很多常用的数学函数功能double

Math.abs(double

a)

求a的绝对值double

Math.ceil(double

a)返回比a大的最小整数double

Math.floor(double

a)

返回比a小的最大整数double

Math.max(double

a,double

b)返回a和b中最大的那个double

Math.min(double

a,double

b)返回a和b中最小的那个double

Math.pow(double

x,double

a)返回x的a次幂long

Math.round(double

x)返回x四舍五入后的整数值double

Math.random()返回[0,1)之间的随机小数double

Math.sqrt(double

x)

求x的开平方根数常用数学函数随机数注意问题----为你Java的梦想插上翅膀本章需要掌握的内容----为你Java的梦想插上翅膀1.熟练掌握print(),println(),printf()进行信息格式化的输出。2.学会使用Scanner获得用户输入的信息。3.掌握基本数据类型,变量,常量的定义。4.会使用基本运算符,逻辑运算符,位运算符。熟练使用if,for,swith,while,dowhile,break,continue做程序练习5.熟练掌握常用数学函数选择和添空题(1)现面这段代码执行后的结果是:/*

Printpublic

classoJavaoJava{public

static

void

main(String[]

args){System.out.println(“我成功的做了第一个Java程序!”);}}我成功的做了第一个Java程序我成功的做了第一个Java程序!C.“我成功的做了第一个Java程序!”D.不能执行----为你Java的梦想插上翅膀(2)请选择最适合的数据类型:A.short

B.int

C.byte

D.long表示中国的人口数

表示世界的人口数

表示英文字母个数

表示10年的天数

----为你Java的梦想插上翅膀(3)请选择下面这段代码执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论