第二章java基础课件语言_第1页
第二章java基础课件语言_第2页
第二章java基础课件语言_第3页
第二章java基础课件语言_第4页
第二章java基础课件语言_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

第二章Java语言基础本章目标理解变量的概念掌握Java的数据类型掌握Java的运算符

运用流程控制语句Java

语言的基础知识变量运算符控制流语句Java基本语法数据类型 变量名 变量值数据类型确定要存储在内存中的数据的类型。变量是存储数据的基本单元程序是按顺序执行的。控制流语句允许改变此顺序。数据类型Java采用Unicode编码,一个字符占用两个字节数据类型Java中的数据类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性变量命名规则1、字母2、下划线‘_’3、‘$’符号首字母其余部分任意多的:1、数字2、字母3、下划线‘_’4、‘$’符号变量名Java语言中,变量命名要符合一定规则money,score,name,sex变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore

,java中的关键字不能为变量名变量的声明和赋值数据类型变量名

=

数值;使用变量的步骤:第一步:声明一个变量根据类型开辟空间第二步:赋值将数据存入空间第三步:使用变量取出数据使用数据类型 变量名;变量名

=

数值;int

money

=

1000;int

money;money

=

1000

;变量1000*(1+5%)内存1050变量:一个数据

1000存储空间的表示98.76不同数据存入具有不同内存地址的空间,相互独立对于专业程序员,数据存入内存不算完:怎么找到存入的数据?存进去还能改吗?在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?变量的使用输出Java课考试最高分:98.5输出最高分学员姓名:张三

输出最高分学员性别:‘男’public

class

HelloDataType

{public

static

void

main(String[

]

args)

{double

score

=

98.5;String

name="张三";char

sex='男';System.out.println("本次考试成绩最高分:"+score);//输出其他……}}单引号双引号连接输出信息演示示例:不同类型变量存取数据类型转化Java中数据类型的转换包含三种自动类型转换强制类型转换

字符串解析转换自动类型转换举例double

firstAvg=81.29;//第一次平均分

double

secondAvg;//第二次平均分

int

rise=2;secondAvg=firstAvg+rise;System.out.println("第二次平均分是:" +

secondAvg);某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?自动类型转换规则规则1:如果一个操作数为double型,则整个表达式可提升为double型规则2:满足自动类型转换的条件两种类型要兼容:数值类型(整型和浮点型)互相兼容目标类型大于源类型:例如:double型大于int型强制类型转换int

before

=

20;double

rise

=

9.8;//apple笔记本市场份额//增长的份额int

now=before+rise; //现在的份额int

now

=

before

+

(int)rise;编译出错:不能完成自动类型转换(类型名)表达式强制类型转换int

b =

(int)10.2;double

a

=

10;

int

c

=

(int)a;更改为强制类型转换演示示例:强制类型转换去年Apple笔记本所占市场份额是20,今年增长的市场份额是9.8,求今年所占份额?字符串解析转换解析转换语法String

nums

=

“20”;int

num

=

Integer.parseInt(nums);double

dNum

=

Double.parseDouble(nums);解析转换指将数字格式的字符串转换为一个数字变量命名规则检查下面这些是否是合法的变量名principal$lastnamecitydiscount%Cityzip

code×cost_price123rate×marks_3×int×变量的分类按被声明的位置划分成员变量:方法外部、类的内部定义的变量局部变量:方法或语句块内部定义的变量注意:类外面(与类对应的大括号外面)不能有变量的声明按所属的数据类型划分基本数据类型引用数据类型局部变量与成员变量方法体内部声明的变量(包括形参)称为局部变量方法形参方法体内部局部变量代码块中定义的局部变量注:局部变量使用前必须被显式赋值在方法体外,类体内声明的变量称为成员变量public

class

HelloWorld{float

f=9.1F;public

static

void

main(String[]

args)

{int

i=8;System.out.println("HelloWorld!");}System.out.println(i);System.out.println(f);}运算符Java语言支持如下运算符:算数运算符:+,-,*,/,%,++,--关系运算符:>,<,>=,<=,==,!=逻辑运算符:!,&&,||,^,&,|位运算符:~,&,|,^,>>,<<,>>>赋值运算符:=扩展赋值运算符:+=,-=,*=,/=字符串连接运算符:+自加和自减运算符课堂演示逻辑运算符课堂演示逻辑运算符!非~按位非&&短路与、&按位与||短路或、|按位或^异或位运算逻辑运算符~按位非:属于一元运算符只对单个自变量起作用作用:使二进制按位“取反”十进制数求按位非~8(-9)、~9(-10)步骤:将8转换为二进制(0000

1000),按位非(1000

0111),求补码(1111

1001)求补码:符号位不变,其余位求反末位加1&按位与:属于二元运算符,两个都为1的时候结果为1逻辑运算符|按位或:属于二元运算符两个中有一个为1结果为1作用:使二进制按位“取反”^异或位运算:属于二元运算符,两个一样为0,否则为1位移运算符<<(左移)运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零例如:5<<2,则是将数字5左移2位5(00000101)舍弃高位2位(000101)低位补两位0(00010100)结果为20左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。比如5<<2=

5

*

4>>(带符号右移)运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补0,负数补1.例如:11>>2,则是将数字11右移2位11(0000

1011)舍弃低位2位(000010),高位补两位0(00000010)结果为2右移一位相当于除2,右移n位相当于除以2的n次方。>>>(无符号右移)按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。其他结构和>>相似。位移运算符将是很好的位移运算选择。实例:用位+

(

i

<<

2

)写出(通常用来对代码进行速度上的优化,用它来代替乘除法移运算符来实现i/100100

=

64

+

32

+

4所以对i/100可以这样来表示:(i<<6)+(i<<5)q<<3)+(q<<1)实现的代码原式=q

*

2

*2*2+q

*

2=q

*(8+2)=q

*

10无法显示该图片。赋值运算符与扩展赋值运算符赋值运算符(=)当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换原则进行处理long l

=

100;int

i

=

(int)l;注意:可以将整型常量直接赋值给byte、short、char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围byte

b=12;//正确

byte

bb=256;//错误char

c=100;//正确

short

s=-32769;错误字符串连接符“+”除用于算数加法运算外,还可用于对字符串进行连接操作int id

=

800

+

90;String

s

=

“hello”

+

“world”;“+”运算符两侧的操作数中只要有一个是字符串

String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接int

c

=

12;System.out.println(“c=”

+

c);当进行打印时,无论任何类型,都自动转为字符串进行打印Systm.out.println(c);三目条件运算符三目条件运算符,语法格式x?y:z其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值举例运算符的优先级表达式通常由多个运算符组成。优先级的规则决定每个运算符在任何给定表达式中的计算顺序顺序运算符1.括号,如()和[]2.一元运算符,如-、++、--和!3.算术运算符,如*、/、%、+和-4.关系运算符,如>、>=、<、<=、==和!=5.逻辑运算符,如&、^、|、&&、||6.条件运算符和赋值运算符,如?:、=、*=、/=、+=和-=流程控制语句在执行应用程序时默认情况是根据程序源码自上而下顺序运行所有应用程序开发环境都提供一个判定过程,称为控制流语句,它用于引导应用程序的执行流控制使程序员可以创建一个应用程序,该应用程序能够检查现有的条件并决定适当的操作过程循环或迭代是重要的编程结构,可用于重复执行一组操作跳转语句允许以非线性的方式执行程序if选择结构是根据条件判断之后再做处理if

(条件){//代码块}if选择结构条件代码块真假基本的if选择结构结果必须是布尔值只有一条语句时,建议不省略{

}if-else选择结构if

(条件){//代码块1}else

{//代码块2}使用if-else选择结构条件代码块1真假代码块2if选择结构是根据条件判断之后再做处理什么是嵌套if选择结构条件1代码块2代码块3假假真if(条件1){if(条件2){代码块真1}

else

{条件代2

码块2}}

else

{代码块1代码块3}内层选择结构嵌套if选择结构if选择结构如果张浩的Java考试成绩大于98分,张浩就能获得一个MP4作为奖励使用if选择结构可以解决import

java.util.Scanner;public

class

GetPrize

{public

static

void

main(String[]

args)

{Scanner

input

=

new

Scanner(System.in);System.out.print("输入张浩的Java成绩:

");

//提示输入Java成绩int

score

=

input.nextInt();

//从控制台获取张浩的Java成绩if(score>90){

//判断是否大于90分System.out.println("老师说:不错,奖励一个MP4!");}}}使用基本的if选择结构演示示例2:使用基本if选择结构复杂条件下的if选择结构张浩Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他运算符&&表达式

明分析:怎使样用把逻多辑个运条算件符连接起来?条件1

&&

条件2 仅仅两个条件同时为真,结果为真||条件1

||条件2只要两个条件有一个为真,结果为真!!条件条件为真时,结果为假条件为假时,结果为真使用复杂条件下的if选择结构问题的条件score1

>

98

&&

score2

>80

||

score1

==

100

&&

score2

>

70运算符的优先级最高的优先级:小括号,即()最低的优先级:赋值运算符,即=优先级顺序:!>算术运算符>比较运算符>&&>||当运算符比较多,无法确定运算符执行顺序时,可以使用小括号控制一下顺序(

score1

>98&&

score2

>

80

)

||

(

score1

==

100

&&

score2

>

70

)使用复杂条件下的if选择结构public

class

GetPrize2

{public

static

void

main(String[]args){

int

score1=100;//张浩的Java成绩int

score2=72;//张浩的音乐成绩if

(

(

score1

>98&&

score2

>

80

)||

(

score1

==

100

&&

score2

>

70

)

){n("老师说:不错,奖励一个MP4!");使用复杂条件下的if选择结构解决问题System.out.printl}}}演示示例3:复杂条件下的if选择结构如果张浩Java考试成绩大于98分,老师就奖励他一个MP4,否则老师就罚他进行编码使用两个基本if选择结构使用if-else选择结构实现if

(score

>

98)

{System.out.println("老师说:不错,奖励一个MP4!");}if

(score

<=

98)

{System.out.println("老师说:惩罚进行编码!");}使用if-else选择结构score>98?输出“奖

MP4”

输出“罚编程”结束使用if-else选择结构解决问题public

class

SimpleIf2

{开始public

static

void

main(String[]

args)

{int

score=91;//张浩的Java成绩声明score

并赋值if

(score

>

98)

{System.out.println("老师说:不错,奖励一个MP4!");}

else

{使用if-else选择结构System.o真ut.println("老师说:假惩罚进行编码!");}}}演示示例:使用if-else结构练习——会员信息录入需求说明:录入会员信息判断录入的会员号是否合法完成时间:20分钟使用多重if选择结构使用多重if选择结构将成绩分成几个连续区间判断。使用单个if选择结构无法完成,使用多个if选择结构很麻烦差良好中等优秀06080

90

1000对学员的结业考试成绩评测成绩>=90

:优秀成绩>=80

:良好成绩>=60

:中等成绩<60

:差如何使用多重if选择结构}

else

if

(score

>=

80

)

{}

else

{System.out.println("差");}System.out.println("良好");}else

if

(score>=60){

大于等于60分,小于80分System.out.println("中等");小于60分大于等于80分,小于90分演示示例:使用多重if选择结构使用多重if选择结构解决问题int

score

=

70; //考试成绩

if

(score>=90){

大于等于90分System.out.println("优秀");如何使用多重if选择结构我想买车,买什么车决定于我在银行有多少存款如果我的存款超过500万,我就买凯迪拉克否则,如果我的存款超过100万,我就买帕萨特否则,如果我的存款超过50万,我就买依兰特否则,如果我的存款超过10万,我就买奥托否则,我买捷安特如何使用多重if选择结构int

money=52;//我的存款,单位:万元if

(money

>=

500)

{System.out.println("太好了,我可以买凯迪拉克");}

else

if

(money

>=

100)

{System.out.println("不错,我可以买辆帕萨特");}else

if

(money>=50){

System.out.println("我可以买辆依兰特");}

else

if

(money

>=

10)

{System.out.println("至少我可以买个奥托");}

else

{各个条件的顺序可以任意排列吗?System.out.println("看来,我只能买个捷安特了");}演示示例:使用多重if选择结构使用多重if选择结构解决问题为什么使用嵌套if选择结构使用嵌套if选择结构学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组要判断是否能够进入决赛在确定进入决赛的情况下,还要判断是进入男子组,还是进入女子组如何使用嵌套if选择结构外层选择结构if(score<=10){

内层选择结构if(gender.equals("男")){

System.out.println("进入男子组决赛!");}else

if(gender.equals("女")){System.out.println("进入女子组决赛!");}}else{System.out.println("淘汰!");}演示示例3:使用嵌套if选择结构使用嵌套if选择结构解决问题指导——折扣计算训练要点:嵌套if选择结构需求说明:讲解需求说明普通顾客购物满100元打9折;会员购物打8折;会员购物满200元打7.5折实现思路:1、外层判断是否是会员2、内层判断是否达到相应打折要求难点指导:嵌套if选择结构中{}的使用完成时间:20分钟练习——计算会员折扣需求说明:会员购物时,根据积分的不同享受不同的折扣计算会员购物时获得的折扣完成时间:20分钟会员积分x折

扣x

2009折2000

x

40008折4000

x

80007折x

80006折为什么使用switch选择结构该问题属于等值判断解决方法:使用多重if选择结构实现使用switch选择结构解决使用多重if选择结构的实现代码韩嫣参加计算机编程大赛如果获得第一名,将参加麻省理工大学组织的1个月夏令营如果获得第二名,将奖励惠普笔记本电脑一部如果获得第三名,将奖励移动硬盘一个否则,不给任何奖励什么是switch选择结构switch(表达式){case常量1:语句;break;case常量2:语句;break;…default:语句;}计算表达式的值如果等于常量1如果等于常量2如果没有找到匹配的值switch选择结构如何使用switch选择结构int

mingCi

=

1;switch

(mingCi)

{case

1:System.out.println("参加麻省理工大学组织的1个月夏令营");break;case

2:System.out.println("奖励惠普笔记本电脑一部");break;case

3:System.out.println("奖励移动硬盘一个");break;default:第一名的情况下第二名的情况下第三名的情况下其他情况下System.out.println("没有任何奖励");}演示示例:使用switch选择结构使用switch选择结构解决问题4生活中的循环打印50份试卷循环结构的特点10000米赛跑旋转的车轮循环结构循环条件循环操作锲而不舍地学习什么是循环特点:先判断,再执行while

(循环条件){循环操作}符合条件,循环继续执行;否则,循环退出循环中被重复执行的操作int

i

=

1;while

(i <=

100)

{System.out.println("好好学习!");i

++;}编码规范:缩进、换行循环操作循环条件真假while循环怎样使用while循环如何用程序描述下面这个故事呢?循环操作为了帮助张浩尽快提高成绩,老师给他安排了每天的学习任务,其中上午阅读教材,学习理论部分,下午上机编程,掌握代码部分。老师每天检查学习成果。如果不合格,则继续进行循环条件使用while循环的步骤1、分析循环条件和循环操作

2、套用while语法写出代码

3、检查循环是否能够退出while(!"y".equals(answer)){System.out.println("上午阅读教材!");System.out.println("下午上机编程!\n");System.out.print("合格了吗?(y/n):");answer=input.next();循环条件循环操作比较两个String类型

System.out.print("合的格值了是吗否?相(y等/n):");String

answer=input.next();怎样使用while循环演示示例2:使用while循环结构}System.out.println("完成学习任务!");避免死循环让他先上机编写程序完成,然后老师检查是否合格。如果不合格,则继续编写。……do

{循环操作}while

(循环条件);while

(循环条件){循环操作}while循环先判断,再执行不适合描述此故事为什么需要do-while循环如何用程序讲述下面的故事?经过几天的学习,老师给张浩一道测试题,do

{循环操作}while

(循环条件);先执行一遍循环操作循环操作循环条件真假什么是do-while循环符合条件,循环继续执行;否则,循环退出特点:先执行,再判断分号不可少do{System.out.println("上机编写程序!");System.out.print("合格了吗?(y/n)");answer=input.next();System.out.println("");}while(!"y".equals(answer));System.out.println("恭喜你通过了测试!");循环条件先执行一遍循环操作怎样使用do-while循环演示示例:使用do-while循环结构while循环和do-while循环的区别语法不同执行次序不同初始情况不满足循环条件时while循环一次都不会执行do-while循环不管任何情况都至少执行一次do

{循环操作}while(循环条件);while

(循环条件){循环操作}先判断,再执行先执行,再判断比较while和do-while循环条件:循环的次数不足5,继续循环循环操作:录入成绩,计算成绩之和使用for循环结构的步骤1、分析循环条件和循环操作2、套用for语法写出代码3、检查循环是否能够退出结合问题1如何使用for循环循环输入某同学结业考试的5门课成绩,并计算平均分//省略声明变量for(int

i=0;i<5;i++){

//循环5次录入5门课成绩System.out.print("请输入5门功课中第"+(i+1)+"门课的成绩:");score

=

input.nextInt();sum

=

sum

+

score;//录入成绩//计算成绩和}avg=sum/5; //计算平均分System.out.println(name+"的平均分是:"+avg);初始值:i=0循环条件:i<5循环变量改变:i++循环操作执行5次如何使用for循环演示示例:使用for循环结构如何使用for循环输出如图所示加法表for(

int

i

=

0, j

=

val;

i<=val;i++, j--){1、循环初始化:i=0;j=输入值2、循环条件:i<=输入值3、循环操作:计算i+j4、循环变量的改变:i++,j--表达式3可以是用“,”隔开的多个表达式,运算顺序从左到右System.out.println(i

+

"

+

"

+

j

+

"

=

"

+

(i+j));}表达式1中可以声明多个同一类型的值并赋值,用“,”隔开演示示例2:使用for循环结构编译错误:变量i

没有初始化int

i=0;for(;i<10;i++){System.out.println("这是"+i);}表达式1省略,循环变量的初始值在for语句之前由赋值可语省句略取得for(<初始化循环变量>

;

<循环条件> ;

<修改循环变量的值>)

{<循环体语句>;

不能省略}for循环常见问题编译正确,但是缺少

循环条件,造成死循环for(int

i=0;;i++){System.out.println("这是"+i);}for循环常见问题}i++;省略表达式3,在循环体内应设法改变循环变量的值以结束循环编译通过,但是循环变量的值无变化,造成死循环for(int

i=0;i<10;){System.out.println("这是"+i);for循环常见问题表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环for(;;){System.out.println("这是测试");}死循环for循环常见问题System.out.println("星期二");break;}//其他语句遇到break,立即跳出switch语句回描顾述4b0re0a0k米用长于跑sw比i赛tch语句}int

i

=

2;sfworitc(ihn(ti)i{=

0;

i<10;

i++)

{跑ca4s0e01米:;if

(S不y能st坚em持.o)u{t.println("星期一");brberaeka;k;//退出比赛}case

2:第8圈,

快累死了…我要退出…为什么需要break语句break:改变程序控制流用于do-while、while、for中时,可跳出循环而执行循环后面的语句while(…)

{………………break;………………}跳出整个循环break通常在循环中与条件语句一起使用什么是break语句如何使用break语句2-1循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误循环录入成绩,判断录入正确性:录入错误,使用b

温馨提示

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

评论

0/150

提交评论